设想
我有一个用户列表,每个列表项中都有一个<header>
和一个<div>
包装器-它们是兄弟姐妹:
<li class="user">
<header>
// ...
</header>
<div class="user-wrapper">
// ...
</div>
</li>
单击用户时,我正在切换div
包装器header
。
目前有效的方法:
// the handler is called
$('li.user > header').live('click', function () {
$(this).next('.user-wrapper').toggle();
});
由于live()
已被弃用并且我使用的是 jQuery 1.7.2,我想使用on()
.
什么不起作用:
// Direct style
$('li.user > header').on('click', function () {
$(this).next('.user-wrapper').toggle();
});
// Delegated style
$('li.user').on('click', 'header', function () {
$(this).next('.user-wrapper').toggle();
});
在任何一种on()
情况下,都不会调用匿名处理函数。
问题
首先……为什么会on()
窒息?
第二......如果/当它工作时,使用委托样式,我仍然可以以与上述相同的方式引用标题的兄弟 div 吗?