jQuery添加类onclick

时间:2013-07-12 18:05:59

标签: jquery class onclick footer

您好我正在使用下面的代码在我的网站上的可扩展页脚。

我想调整它,以便在链接类' .toggle'单击它将添加一个名为' .is-open'到目前为止,代码执行此操作但另外我希望代码添加类' .is-open'到了另一个名为' .footercontrol'

$(".footer, .toggle:not(:first-child)").hide();

$(".toggle").click(function(e) {

e.preventDefault();

if ( $(this).hasClass("is-open") ){
    $(this).removeClass("is-open").nextAll(".footer, .toggle:not(:first-         child)").slideUp(500).removeClass("is-open");
    return;
}


$(this).toggleClass("is-open");
$(this).next(".footer").slideToggle(500).next(".toggle").slideToggle(500);

$("html, body").animate({
    scrollTop: $(document).height()
}, 500);

});

提前致谢:)

3 个答案:

答案 0 :(得分:0)

  

我希望代码将类'.is-open'添加到另一个类   叫'.footercontrol'

所以你想要这个:

$(".footercontrol").addClass("is-open");

如果我理解正确的话?

如果你只有一个具有这个类的元素,那么你应该考虑使用id而不是class。实际上没有任何改变。

编辑:

如果您还希望在第二次单击时删除它,toggleClass似乎正在执行此操作,但我从未使用它。我通常这样做:

$( ".footercontrol" ).each(function( index ) {
 if($(this).hasClass("is-open"))
 {
  $(this).removeClass("is-open");
 }
 else
 {
  $(this).addClass("is-open");
 }
});

当然,您可以将$(this)替换为$(".footercontrol")并将其作为单个调用,而不是.each循环,因为您只处理一个元素。

答案 1 :(得分:0)

你应该能够添加

$('.footercontrol').toggleClass('is-open');

在该功能中,让它按预期工作。

e.g。

$(this).toggleClass("is-open");
$('.footercontrol').toggleClass('is-open');
$(this).next(".footer").slideToggle(500).next(".toggle").slideToggle(500);

$("html, body").animate({
    scrollTop: $(document).height()
}, 500);

答案 2 :(得分:0)

由于你的帮助,

最终设法对自己进行了排序,我只是修改了现有代码,并在现有事件中增加了另一个类,如下所示:

$(".footer, .toggle:not(:first-child)").hide();

$(".toggle, .footercontrol").click(function(e) {

e.preventDefault();

if ( $(this).hasClass("is-open") ){
    $(this).removeClass("is-open").nextAll(".footer, .toggle:not(:first-child),   .footercontrol").slideUp(500).removeClass("is-open");
    return;
}

$(this).toggleClass("is-open");
$(this).next(".footer").slideToggle(500).next(".toggle").slideToggle(500);

$("html, body").animate({
    scrollTop: $(document).height()
}, 500);


});

它似乎工作得很好,如果我对jQuery了解得更多,我可能会想到更快地尝试。但是谢谢你的帮助!