jQuery 的 delegate() 方法允许开发者在一个元素上绑定事件处理函数,而不是在每个子元素上绑定。这样可以减少内存占用,提高性能。
delegate() 方法的语法如下:
$(selector).delegate(childSelector, eventType, handler);
其中,selector 是要委托的元素;childSelector 是要委托的子元素;eventType 是要委托的事件类型;handler 是事件处理函数。
例如,我们有一个 div 元素,里面有三个 a 元素。我们想要在这三个 a 元素上都添加 click 事件处理函数。我们可以使用 delegate() 方法来实现这一目标:
$('div').delegate('a', 'click', function(){ // do something });
当用户单击 div 中的 a 元素时,就会触发 click 事件处理函数。这样就不必在每个 a 元素上都添加 click 事件处理函数了。
此外,delegate() 还有一个重载版本:
$(selector).delegate(childSelector, eventType, data, handler);
该版本和前面的版本基本相同,只是多了一个 data 参数。data 参数是一个对象,会作为参数传递到 handler 中去。handler 的语法如下所示:
(eventObject, data) { // do something }
jQuery 事件方法
通过 delegate() 方法从所有元素移除所有事件处理程序:
undelegate() 方法移除一个或多个由 delegate() 方法添加的事件处理程序。
自 jQuery 版本 1.7 起,on() 和 off() 方法是添加和移除元素上的事件处理程序的首选方法。
$(selector).undelegate(selector,event,function)
参数 | 描述 |
---|---|
selector | 可选。规定需要删除事件处理程序的选择器。 |
event | 可选。规定需要删除处理函数的一个或多个事件类型。 |
function | 可选。规定要删除的具体事件处理函数。 |
移除所有 click 事件处理程序
如何使用 undelegate() 方法来移除所有 <p> 元素上的 click 事件处理程序。
移除由 delegate() 添加的指定函数
如何使用 undelegate() 方法只移除指定函数。
jQuery 事件方法
jQuery 是为事件处理特别设计的。 什么是事件? 页面对不同访问者的响应叫做事件。事件处理程序指的是当 HTML 中发生某些事件时...
CSS3 target-name 属性实例在新窗口中打开所有超链接:a{target-name:new;}浏览器支持任何主流浏览器都不支持target-name属性。...
CSS :out-of-range 选择器 完整CSS选择器参考手册 定义和用法 :out-of-range 选择器用于标签的值在指定区间之外时显示的样式。注...
CSS3 ::selection 选择器完整CSS选择器参考手册定义和用法::selection 选择器匹配元素中被用户选中或处于高亮状态的部分。::sele...
CSS 参考手册实例规定在使用方向键时向何处导航:button#b1{top:20%;left:25%;nav-index:1;nav-right:#b2;nav-left:#b4;nav-down...