您好我正在使用下面的代码在我的网站上的可扩展页脚。
我想调整它,以便在链接类' .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);
});
提前致谢:)
答案 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了解得更多,我可能会想到更快地尝试。但是谢谢你的帮助!