我想为div添加一个click处理程序.但有没有办法使用单击处理函数并在多个div之间共享?因为我可能有100个div,所以我不想为每个div创建一个click处理程序(它们几乎都会做同样的事情).jquery示例显示:
$("p").click(function () {
$(this).foo();
});
Run Code Online (Sandbox Code Playgroud)
我们可以这样做:
$("p").click(myClickHandler);
function myClickHandler(source) {
source.foo();
}
Run Code Online (Sandbox Code Playgroud)
?
use*_*716 19
.delegate()
如果你不想要数百个点击事件的开销,jQuery的方法是一个很好的方法.
它将一个事件分配给容器,当容器的指定后代获取事件时,该容器将被触发.
测试示例: https ://jsfiddle.net/jYKgm/210/
HTML
<div id="container"> // #container has the event handler assigned
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
<div>content</div>
</div>?
Run Code Online (Sandbox Code Playgroud)
jQuery的
// The click event handler will fire when <div> elements
// that descend from #container get clicked.
$('#container').delegate('div', 'click', function() {
alert('index ' + $(this).index() + ' was clicked');
});
Run Code Online (Sandbox Code Playgroud)
这将为#container
元素分配一个处理程序,并使其成为任何后代div
元素将触发处理程序.
因此,如果有500个后代div
元素,它们将共享一个事件处理程序.
?- .delegate()
- http://api.jquery.com/delegate
归档时间: |
|
查看次数: |
12356 次 |
最近记录: |