当先锋百科网

首页 1 2 3 4 5 6 7

Delegate是jQuery中的一种委托机制,可以提高代码性能。它有两个重要的作用:

第一,它可以适用于动态生成的元素。由于事件处理程序是基于静态的元素,如果在生成元素后才绑定事件处理程序,就无法激活事件处理程序,这时候可以使用delegate。

$(document).delegate("#btn", "click", function(){
console.log("click");
});

上面的代码表示选择文档,使用delegate()方法创建一个事件委托,委托“#btn”的click事件处理程序,这可以使动态生成的元素能够绑定到事件处理程序。

第二,delegate()方法可以避免多个事件处理程序的绑定。当一些元素绑定了类似的事件处理程序时,我们可以通过委托机制把主逻辑绑定到顶层元素上,而不用每个元素都绑定处理程序。

  • 1
  • 2
  • 3
$("#list").delegate("li", "click", function(){ console.log("click li"); });

上面的代码表示用delegate()方法,将click事件绑定到list元素上,当点击li标签时,事件就会冒泡到顶层元素,顶层元素有具体的事件处理程序实现逻辑。这个委托机制类似于给每个li标签都添加click事件。