Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery动态添加了不使用change()函数的复选框_Jquery_Dynamic_Checkbox_Onchange - Fatal编程技术网

jquery动态添加了不使用change()函数的复选框

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

我动态地将一些带有标签和复选框的li加载到另一个可见的ul。我将复选框设置为checked=“checked”,并试图在更改这些动态插入的复选框时触发事件,但什么也没有发生

以下是jquery:

$(".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')
    )};