Jquery 单击动态生成的

Jquery 单击动态生成的,jquery,html,list,dynamic,click,Jquery,Html,List,Dynamic,Click,大家好,我正在生成我的ul和li,如下所示,并希望触发点击事件,但委派,onand click方法不工作,仅live工作正常,但live是不推荐的功能,所以是否有任何其他方法,我可以使用帮助我请/ 这里loadpage是我的html代码中的div <script type="text/javascript"> $(document).ready(function() { $('#LoadPage').append('<ul class="

大家好,我正在生成我的ul和li,如下所示,并希望触发点击事件,但委派,onand click方法不工作,仅live工作正常,但live是不推荐的功能,所以是否有任何其他方法,我可以使用帮助我请/ 这里loadpage是我的html代码中的div

<script type="text/javascript">
       $(document).ready(function() {
             $('#LoadPage').append('<ul class="testul" id="list">');
                 for (var i = 1; i < 5; i++) {
                   $('#list').append('<li class="clicks" id="item'+i+'"></li>');
                 }          
             $('#LoadPage').append('</ul>');
        });

            // click event works  wtih .live() onlyyy.......................
        $('.clicks').live('click', function() {
            alert('hello');
        });






        /*$(".clicks").on("click", function(){
            alert('hello');
        });
        $("#testul").delegate("li", "click", function() {
        alert('hello');
        });



        $("#testul").delegate("li", "click", function() {
            alert('hello');
              });*/

    </script>

我试了一下,效果很好

试试看

我试了一下,效果很好


请尝试,您的选择器应该与文档匹配,因为文档实际上存在。然后,您将为将存在的单击传递选择器。通过最初匹配.clicks,您的结果集为空,不会发生任何事情

$(document).on("click", ".clicks", function(){ 
        alert('hello'); 
}); 

live文档讨论了如何转换使用它在上使用或委派的代码:。

您的选择器应该与文档匹配,因为文档实际上存在。然后,您将为将存在的单击传递选择器。通过最初匹配.clicks,您的结果集为空,不会发生任何事情

$(document).on("click", ".clicks", function(){ 
        alert('hello'); 
}); 

live文档讨论了如何转换使用它的代码以在上使用或委托:。

方法委托和单击不起作用,因为您尚未加载html。尝试在加载li元素后定义它

<script type="text/javascript">
    $(document).ready(function() {
        $('#LoadPage').append('<ul class="testul" id="list">');
            for (var i = 1; i < 5; i++) {
              $('#list').append('<li class="clicks" id="item'+i+'"></li>');
            }          
        $('#LoadPage').append('</ul>');
        $('.clicks').click(function() {
            alert('hello');
        });
     });
</script>

方法委托、On和click不起作用,因为您尚未加载html。尝试在加载li元素后定义它

<script type="text/javascript">
    $(document).ready(function() {
        $('#LoadPage').append('<ul class="testul" id="list">');
            for (var i = 1; i < 5; i++) {
              $('#list').append('<li class="clicks" id="item'+i+'"></li>');
            }          
        $('#LoadPage').append('</ul>');
        $('.clicks').click(function() {
            alert('hello');
        });
     });
</script>
把这个换成

    $(document).ready(function() {
         $('#LoadPage').append('<ul class="testul" id="list">');
             for (var i = 1; i < 5; i++) {
               $('#list').append('<li class="clicks" id="item'+i+'"></li>');
             }          
         $('#LoadPage').append('</ul>');
         // click event works  wtih .live() onlyyy.......................
         $('.clicks').click(function() {
             alert('hello');
         });
    });
以前,这些项不存在于DOM中,插入DOM后,它可以具有任何功能

把这个换成

    $(document).ready(function() {
         $('#LoadPage').append('<ul class="testul" id="list">');
             for (var i = 1; i < 5; i++) {
               $('#list').append('<li class="clicks" id="item'+i+'"></li>');
             }          
         $('#LoadPage').append('</ul>');
         // click event works  wtih .live() onlyyy.......................
         $('.clicks').click(function() {
             alert('hello');
         });
    });

以前,这些项不存在于DOM中,插入DOM后,它可以具有任何功能。

从jQuery 1.7开始,.live方法已被弃用

您使用的jQuery版本是什么?在1.7版中添加了,请查看文档

如果包含正确版本的jQuery,它应该可以正常工作


从jQuery 1.7开始,请尝试此方法,.live方法已被弃用

您使用的jQuery版本是什么?在1.7版中添加了,请查看文档

如果包含正确版本的jQuery,它应该可以正常工作


关于代理,请尝试此方法

为什么您应该尝试使用绑定方法?因为简单单击不起作用为什么您应该尝试使用绑定方法?因为简单单击不起作用正如我提到的,即使在循环之外,也可以正常工作;但感谢我得到了新的东西来学习,即使我必须对循环中的所有元素使用click事件…:如我所提到的,即使在循环之外,现场工作也很好;但谢谢,我学到了新东西,即使我必须对循环中的所有元素使用click事件…:您的控制台中有错误吗?因为on应该可以正常工作。您的控制台中有错误吗?因为你的工作应该很好