jquery动态添加了不使用change()函数的复选框
我动态地将一些带有标签和复选框的li加载到另一个可见的ul。我将复选框设置为checked=“checked”,并试图在更改这些动态插入的复选框时触发事件,但什么也没有发生 以下是jquery:jquery动态添加了不使用change()函数的复选框,jquery,dynamic,checkbox,onchange,Jquery,Dynamic,Checkbox,Onchange,我动态地将一些带有标签和复选框的li加载到另一个可见的ul。我将复选框设置为checked=“checked”,并试图在更改这些动态插入的复选框时触发事件,但什么也没有发生 以下是jquery: $(".otherProductCheckbox:checkbox").change( function(){ alert('test'); }); 以下是动态添加的li的html: <li class="otherProduct"><input type="checkbox
$(".otherProductCheckbox:checkbox").change( function(){
alert('test');
});
以下是动态添加的li的html:
<li class="otherProduct"><input type="checkbox" class="otherProductCheckbox radioCheck" checked="checked"/><label>Product Name</label></li>
产品名称
知道为什么当复选框更改其选中状态时我不能发出警报吗?您必须使用
liveQuery
或live
将事件绑定到动态添加的元素
$(".otherProductCheckbox:checkbox").live('change', function(){
alert('test');
});
编辑
要在IE中工作,必须使用“单击不更改”
$(".otherProductCheckbox:checkbox").live('click', function(){
alert('test');
});
因为从jQuery1.7开始,我想我应该发布对同一问题有效的解决方案(当动态添加的复选框被更改时触发事件)
以上两种方法对我都不起作用,但在listview中动态添加项目列表的复选框时,这一种方法起作用
$('.favourite_itemList').on('click','.checkBox', function () {
alert('test')
)};
尽管在optIn或optOut时,在特定的checkbox元素中没有显示可见的函数/属性更改,但上面的代码对我来说效果很好。@Teja Kantamneni:Perfect。谢谢你的指导。仍在学习jquery的细节。只有在设置事件处理程序后添加元素时,才需要这样做。@Gareth:Yeh这现在是有意义的。这就是IE的问题,IE只有在元素失去焦点后才会触发更改事件。要修复此问题,请使用
click
而不是change
document.getElementById('id').live('click',function(){alert('test');});这对我不起作用。。“otherProductCheckbox”在这里是什么意思?
$('.favourite_itemList').on('click','.checkBox', function () {
alert('test')
)};