jQuery 1.7 on() and off() methods for dynamic elements

泪湿孤枕 提交于 2019-11-27 05:25:31

问题


jQuery 1.7's .on() and .off() methods are supposed to replace .live() and such.

I tried it with a dynamic item:

 $(".myList").on('click', function(e){
  alert('hello world');
 });

This is not working for me for elements added after DOM is loaded.

Is code above a valid example for jQuery 1.7's .on() and .off() methods?


回答1:


See http://blog.jquery.com/2011/11/03/jquery-1-7-released/ for live() -> on/off() (and other) examples.

This is their example for converting live to on:

$('a').live('click', fn);
$(document).on('click', 'a', fn);

So your example becomes to:

$(document).on('click', '.myList', function(e){
  alert('hello world');
});



回答2:


Here is a little example:

http://jsfiddle.net/zzSjK/

<script type="text/javascript">
    $(function(){
        $(document).on('click','.clickme' , function(e){
          addtext()
        });
        function addtext() {
            $('.myList').append('<div class="clickme">click me</div>')
        }
    })
</script>

<div class="myList">
    <div class="clickme">-click-</div>
</div>



回答3:


"Bind" with:

$(document).on('click','.myDiv',function(){ ... });

And "unbind" with:

$(document).off('click','.myDiv');


来源:https://stackoverflow.com/questions/8029589/jquery-1-7-on-and-off-methods-for-dynamic-elements

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!