如何只触发一次addClass?

时间:2020-10-26 18:07:38

标签: jquery

伙计们,我认为我的代码可以说明一切。

我想要的是chosen类仅应用于单击的第一个.block-1 .options a,而没有其他应用。

关于如何执行此操作的任何想法?

Ps。显然,下面的jQuery代码不起作用。

<div class="block-1">
<div class="options">
<a href="#">One</a>
</div>
<div class="options">
<a href="#">Two</a>
</div>
<div class="options">
<a href="#">Three</a>
</div>
</div>

$('.block-1 .options a').on('click', function(){
   $(this).one().addClass('chosen');
});

2 个答案:

答案 0 :(得分:1)

检查是否有任何a标签具有.chosen类,如果没有,则将.chosen类应用于所单击的元素:

$('.block-1 .options a').on('click', function() {
    if ($('.block-1 a.chosen').length == 0) {
        $(this).addClass('chosen');
    }
});

答案 1 :(得分:1)

您可以使用隐藏字段值来确定是否已单击任何链接:

 <input type=“hidden” id=“hField” />

$(document).ready(function(){
    $(“a”).on(“click”, function(){
        if ($(“#hField”).val() != “1”){
            $(“#hField”).val(“1”);
            $(this).addClass(“chosen”);
        }
     });
 });
相关问题