gpt4 book ai didi

javascript - 多个onclick面板代码效率

转载 作者:行者123 更新时间:2023-11-28 20:39:11 25 4
gpt4 key购买 nike

下面的代码运行良好,但是,作为一个 jquery 初学者,即使我也可以看到这段代码可以更加简化(可能可以简化为几行)。我应该使用数组和 foreach 吗?或者有特定的jquery函数吗?感谢您的知识。

/* 1 panel */
$(".button_panel_1").click(function(){
$(".panel_2, .panel_3, .panel_4, .panel_5, .panel_6, .panel_7").hide(222);
$(".button_main").removeClass("active");
$(".panel_1").slideToggle(222);
$(this).toggleClass("active"); return false;
});
/* 2 panel */
$(".button_panel_2").click(function(){
$(".panel_3, .panel_4, .panel_5, .panel_6, .panel_7, .panel_1").hide(222);
$(".button_main").removeClass("active");
$(".panel_2").slideToggle(222);
$(this).toggleClass("active"); return false;
});
/* 3 panel */
$(".button_panel_3").click(function(){
$(".panel_2, .panel_4, .panel_5, .panel_6, .panel_7, .panel_1").hide(222);
$(".button_main").removeClass("active");
$(".panel_3").slideToggle(222);
$(this).toggleClass("active"); return false;
});
/* 4 panel */
$(".button_panel_4").click(function(){
$(".panel_2, .panel_3, .panel_5, .panel_6, .panel_7, .panel_1").hide(222);
$(".button_main").removeClass("active");
$(".panel_4").slideToggle(222);
$(this).toggleClass("active"); return false;
});
/* 5 panel */
$(".button_panel_5").click(function(){
$(".panel_2, .panel_3, .panel_4, .panel_6, .panel_7, .panel_1").hide(222);
$(".button_main").removeClass("active");
$(".panel_5").slideToggle(222);
$(this).toggleClass("active"); return false;
});
/* 6 panel */
$(".button_panel_6").click(function(){
$(".panel_2, .panel_3, .panel_4, .panel_5, .panel_7, .panel_1").hide(222);
$(".button_main").removeClass("active");
$(".panel_6").slideToggle(222);
$(this).toggleClass("active"); return false;
});
/* 7 panel */
$(".button_panel_7").click(function(){
$(".panel_2, .panel_3, .panel_4, .panel_5, .panel_6, .panel_1").hide(222);
$(".button_main").removeClass("active");
$(".panel_7").slideToggle(222);
$(this).toggleClass("active"); return false;
});
/* Close button */
$(".panel_header_close").click(function(){
$(".panel_main").hide(222);
$(".button_main").removeClass("active"); return false;
});

我已经设法将代码范围缩小到这个,我想说非常好:

    $.each(['1', '2', '3', '4', '5', '6', '7'], function(index, value) {
$(".button_panel_" + value).click(function(){
$(".panel_" + value).slideToggle(222);
$(".panel_main").not(".panel_" + value).hide(222);
$(".button_main").not(this).removeClass("active");
$(this).toggleClass("active"); return false;
});
});

最佳答案

做这样的事情

$(".button").click(function(){
$(".button").not(this).hide().removeClass("active");
$(this).addClass("active");
$(this).find(".panel").slideToggle();
return false;
});

或者..

$(".button").click(function(){
$(this).addClass("active").siblings().hide().removeClass("active");
$(this).find(".panel").slideToggle();
return false;
});

关于javascript - 多个onclick面板代码效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14731642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com