我总是发现自己在代码的许多区域都有带有点击事件的多个选择器。这样做有什么缺点吗?
例如:
$('#id').live('click'....)
$('div').live('click'....)
$('.class p').live('click'..)
还是将所有内容合并到一个选择器中更好,例如
$('#id, div, .class p')..
有时我发现很难将所有内容组合到一个选择器上,因为我必须知道单击了哪一项。并非所有项目都有 id。有些有 id、有些类,有些只是普通的 html 标签。如果将所有内容合并到一个选择器中效果更好,我如何知道单击了哪个项目。
最佳答案
如果您需要在点击事件期间区分项目 - 因此,每个被点击元素的行为应该不同,您应该为每个元素绑定(bind)一个事件>.
如果元素可以分组在一起,因为它们具有相同的行为,那么确实没有理由不对选择器进行分组。
将点击事件绑定(bind)到多个元素时,$(this)
始终引用被点击的元素,这允许您根据需要执行一些特定于元素的例程。例如:
HTML:
<ul>
<li>Some item</li>
<li>Another one</li>
<li>And another one</li>
</ul>
<span>Wee</span>
JavaScript:
$(function() {
$('span, li').click(function() {
$(this).append($('<div>Child div added to clicked element</div>'));
});
});
示例:
关于jQuery 应该将具有类似事件的选择器分组为 1 个选择器。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5125669/