第一次点击preventDefault
元素时,我正在使用以下代码.headlink
。问题在于它计算了对该类的任何元素的第一次点击。
例如,如果我有三个类.headlink
的链接,则用户可以单击一个,其他链接将不再处于活动状态。是否可以将我的代码与jQuery的.this
函数结合起来,使.one
特定于此类的每个链接?
$(".headlink").one("click", function(event) {
event.preventDefault();
});
答案 0 :(得分:1)
one()
方法意味着事件只会为选择器中每个元素实例触发一次。
相反,假设您希望事件仅针对 all 选择器的元素触发一次,则需要手动分离该事件的所有事件处理程序。试试这个:
$(".headlink").on("click.headlink", function(event) {
event.preventDefault();
$('.headlink').off('click.headlink'); // remove the handler on all elements
// your logic here...
// $(this).doSomethingCool();
});
请注意,我将事件命名为“当它被删除时,只有这个特定的点击处理程序受到影响,而不是所有绑定到受影响元素的click()
处理程序。