jQuery事件:bind、delegate、on

关系

.on()是jQuery事件的提供者。其他的事件绑定方法都是通过.on()来实现的, 相对应的是off , 其它事件的解绑事件都是通过 off()来实现的.

bind

.bind将会给所有匹配的元素都绑定一次事件,当元素很多时性能会变差。 而且后来动态新增的元素不会被绑定。

$('#foo').unbind('click'); // 解绑指定事件 , 参数为空解绑所有

delegate

自动绑定动态添加的元素。因为事件处理函数绑定在#root上,新加的子元素事件也会冒泡到#root
性能好于.bind()。只绑定一个事件处理函数,绑定速度相当快。




事件冒泡和取消默认行为

$('a').click(function(event){
    // do sth.
    return false;
});

return false来阻止冒泡和默认行为, 可以认为return false做了三件事情:

  1. stopPropagation()
  2. preventDefault()
  3. 立即结束当前函数并返回。
// 事件处理函数的第一个参数是一个事件对象
$('#foo').click(function(event){
    event.stopPropagation();
    // do sth.
});

$('a').click(function(event){
    event.preventDefault();
    // do sth.
});

你可能感兴趣的:(jQuery事件:bind、delegate、on)