<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" >
<title>HelloWorld</title>
<script src="jquery-1.9.1.js"></script>
<script>
$(function(){
$('.aa').bind('click',function(){
alert('a');
});

$('body').append("<div class='aa'>weiheli</div>");
})
</script>
</head>
<body>
<div class="aa">
weiheli
</div>
</body>
</html>
把bind改成live会报错,为什么?bind、live、on、delegate的本质区别?jquery事件帮定

解决方案 »

  1.   

    bind两边的stong是误写,可忽略
      

  2.   

    因为.live()方法从jQuery 1.7版开始就不推荐使用了,到了jQuery 1.9版就被彻底移除了。
      

  3.   

    bind是直接把事件注册到选中的页面元素上;
    live把事件注册到document对象上,让它处理页面中指定元素冒泡上来的事件,在1.9版已被废弃;
    delegate可以把事件注册到任意元素上,让它处理来自指定子元素冒泡上来的事件;
    on是1.7新增的,可以实现所有事件注册方法,可以取代bind和delegate。
    现在注册事件基本上用on、off、one这三个方法就够了,直接注册事件到指定元素时也可以用click、mouseup等简写方法。