jquery事件委托实现事件预绑定

事件委托,即将本该注册到子元素上的事件注册到父元素上,其原理是事件冒泡。事件冒泡就是当前元素触发的事件会一级一级地向上传递,如果父级有这个事件,就会触发,没有就不触发,其实父级没有注册这个事件,也会传递的,只是不触发而已。

元素如下,需要给li绑定单击事件:

  • 1111
  • 2222
  • 3333
  • 4444

普通方式绑定事件:

$('#list li').click(function(){
    alert('hello world!');
});

这样做有两个弊端:
1.很耗费资源,因为这种方式是给每个li都加上了事件,li的个数少的话还好,如果li多的话会很耗费资源。
2.如果后期动态添加li,不会拥有这个弹出事件。

委托方式绑定事件:

$(document).on('click', '#list li', function() {
    alert('hello world!');
});

或者:

$('#list').on('click', 'li', function() {
    alert('hello world!');
});

这样即使后期动态添加了li,也会拥有这个单击弹出事件,从而实现了事件预绑定。

 

你可能感兴趣的:(Web前端)