我有以下内容:
<ul id='foo'>
<li>
<ul class='a'>
<li class='animal'>goat</li>
<li class='animal'>horse</li>
<li class='animal'>pig</li>
</ul>
</li>
<li>
<ul class='a'>
<li class='animal'>zebra</li>
</ul>
</li>
</ul>
我想为内部li项(具有类'animal'的项目)创建一个委托处理程序:
$('#foo li ul').delegate('li', 'click', function(event) {
...
});
我不确定如何在委托定义中定义选择器 - 这是正确的方法吗?
由于
答案 0 :(得分:2)
你可以这样做:
$('#foo').delegate('li.animal', 'click', function(event) {
//do something
});
初始选择器是点击的监听器应该存在的地方(它们会冒泡到这里),第一个参数(li.animal
)是要监听点击的元素。
答案 1 :(得分:0)
以下内容应该有效......
$('#foo').delegate('ul.a li', 'click', function(event) {
...
});
这也可以,但是会将处理程序附加到每个ul.a
元素,这会失去.delegate
IMO的好处:)
$('#foo ul.a').delegate('li', 'click', function(event) {
...
});