而不是做
$("#IsOutdoors").click(function () {
SendData();
});
$("#HasPatio").click(function () {
SendData();
});
如果我想做多个 .click 事件,有没有更好的方法?谢谢!
而不是做
$("#IsOutdoors").click(function () {
SendData();
});
$("#HasPatio").click(function () {
SendData();
});
如果我想做多个 .click 事件,有没有更好的方法?谢谢!
只需在一个字符串中使用所有选择器,并用逗号分隔它们:
$("#IsOutdoors, #HasPatio").click(function () {
SendData();
});
对于更简洁的版本,您可以将SendData
函数本身传递给click
:
$("#IsOutdoors, #HasPatio").click( SendData );
但请注意,这将改变this
.SendData
$("#IsOutdoors,#HasPatio").click(SendData);
有很多方法:
$("#IsOutdoors, #HasPatio").click(SendData);
$.add()
. 由于各个选择是内部快捷方式,getElementById()
而不是使用 fullquerySelectorAll()
或 Sizzle,因此这可能更有效。$("#IsOutdoors").add("#HasPatio").click(SendData);
$(".someClass").click(SendData);
这取决于你所说的更好。你想要更少的代码但同样的结果吗?你可以做类似的事情
$("#IsOutdoors, #HasPatio").click(SendData);
如果您希望减少单击处理程序的数量,例如,如果您有多个 DOM 元素都具有相同的单击处理程序,则可以改为将事件处理程序放在父元素上。然后,您可以列出应该将此事件委托给的元素的所有 ID,或者为它们提供一个通用类,例如clickable
. 假设您的 HTML 如下所示:
<div id='someParent'>
<div id='IsOutdoors' class='clickable'></div>
<div id='HasPatio' class='clickable'></div>
</div>
您可以将点击处理程序简化为
$("#someParent").on('click', '.clickable", SendData);
或者如果您不想像我建议的那样添加课程
$("#someParent").on('click', '#IsOutdoors #HasPatio", SendData);