对同一元素进行多次单击会删除类

时间:2017-09-07 23:31:52

标签: javascript jquery

我遇到了一个问题,我想在点击元素时添加和删除类。但是,如果我单击两次相同的元素,则会删除添加的类。我不知道这里的问题是什么。

$('#01').click( function() {    
    $(".d1").removeClass("show-forms");
    $(".d2").removeClass("show-forms");
    $(".pick-notice").toggleClass("hide-forms");
    $(".d0").removeClass( "hide-forms" );
    $(".d0").toggleClass("show-forms");
} );

还有一种方法可以将更多元素用于相同的功能,如下所示:

$('#01, #02, #03').click( function() {...

我尝试了这个,但它没有用

$('#01', '#02', '#03').click( function() {...

3 个答案:

答案 0 :(得分:1)

要为多个选择器分配相同的功能,您的第一个代码应该有效(参见此处参考:https://api.jquery.com/multiple-selector/

$('#01, #02, #03').click( function() {} );

从您添加类的示例中不太清楚,我认为您可能希望使用addClass(https://api.jquery.com/addClass/)而不是toggleClass(https://api.jquery.com/toggleClass/)。 addClass将类添加到所选元素。而toggleClass会将类添加到所选元素中,如果它没有类,如果它有类,它将删除它。那么这就是为什么第二次单击它会删除该类?

尝试以下方法:

$('#01').click( function() {    
    $(".d1").removeClass("show-forms");
    $(".d2").removeClass("show-forms");
    $(".pick-notice").addClass("hide-forms");
    $(".d0").removeClass( "hide-forms" );
    $(".d0").addClass("show-forms");
} );

或者如果您想要多个选择器:

$('#01, #02, #03').click( function() {    
    $(".d1").removeClass("show-forms");
    $(".d2").removeClass("show-forms");
    $(".pick-notice").addClass("hide-forms");
    $(".d0").removeClass( "hide-forms" );
    $(".d0").addClass("show-forms");
} );

答案 1 :(得分:0)

您可以使用它来一次选择muntiple类:

string1 = string1.replace("b", "c")
string2 = string2.replace("b", "c")
string3 = string3.replace("b", "c")

这将适用于每个Id

答案 2 :(得分:0)

我不是问题的第一部分,而是问题的第二部分:

我认为将它变成一个类

是一个更好的解决方案

所以01,02,03都是某个类(即.clickable

这样你就可以$(.clickable).click(function(){