动态元素的jQuery 1.7 on()和off()方法

时间:2011-11-06 19:06:29

标签: jquery jquery-1.7

jQuery 1.7的.on().off()方法应该替换.live()等。

我用动态项目尝试了它:

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

对于我加载DOM后添加的元素,这不起作用。

代码是否是jQuery 1.7的.on().off()方法的有效示例?

3 个答案:

答案 0 :(得分:33)

请参阅http://blog.jquery.com/2011/11/03/jquery-1-7-released/了解live() - >开/关()(和其他)例子。

这是将live转换为on的示例:

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

所以你的例子变成了:

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

答案 1 :(得分:4)

这是一个小例子:

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>

答案 2 :(得分:2)

“绑定”:

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

与“unbind”:

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