在一组元素上使用jQuery的.one

时间:2015-07-18 22:36:14

标签: jquery

第一次点击preventDefault元素时,我正在使用以下代码.headlink。问题在于它计算了对该类的任何元素的第一次点击。

例如,如果我有三个类.headlink的链接,则用户可以单击一个,其他链接将不再处于活动状态。是否可以将我的代码与jQuery的.this函数结合起来,使.one特定于此类的每个链接?

$(".headlink").one("click", function(event) {
    event.preventDefault();
});

1 个答案:

答案 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();
});

Example fiddle

请注意,我将事件命名为“当它被删除时,只有这个特定的点击处理程序受到影响,而不是所有绑定到受影响元素的click()处理程序。