我需要捕获选择框何时发生变化,应该很简单!
$('#multiid').change(function(){
alert('Change Happened');
});
但它不起作用,我怀疑问题是文档就绪时不存在选择框,只有在需要时才创建它,所以我在 HTML 中将其创建为空,用代码填充它作为测试,但这也不起作用。
function buildmulti(id,name,price) {
// build action items for action bar
var optlist = $('<select></select>').attr('id', 'multiid').attr('name', 'multiid');
optlist.append('<option value="0">Select Size</option>');
$.each(option, function(index, val) {
if(val.prodID *1 == id * 1) {
v = val.ID;
fprice = price * 1 + val.pricechange * 1;
t = name + ' - ' + val.variation + ' - ' + currency + (fprice).toFixed(2);
optlist.append('<option value="' + v + '">' + t + '</option>');
}
})
$('#addbasket').append(optlist);
};
可能是另一个支架不合适,但我找不到它!
Try
$(document).on('change','#multiid',function(){
alert('Change Happened');
});
由于您的选择框是从代码生成的,因此您必须使用事件委托 http://api.jquery.com/on/,在哪里代替$(document)
您可以拥有最接近的父元素。
Or
$(document.body).on('change','#multiid',function(){
alert('Change Happened');
});
Update:
第二个工作正常,需要对选择器进行另一项更改才能使其工作。
$('#addbasket').on('change','#multiid',function(){
alert('Change Happened');
});
理想情况下我们应该使用$("#addbasket")
因为它是最近的父元素 [正如我上面提到的].
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)