gpt4 book ai didi

javascript - 如何优化这个 javascript 重复项

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:01:30 26 4
gpt4 key购买 nike

我写了这段代码,但是由于我刚开始学习 JS,所以无法找到优化这段代码的最佳方法。因此,为每个 if 语句制作一个副本。

$(function() {
var lang = $(".lang input[type='checkbox']");
var gender = $(".gender input[type='checkbox']");
if(lang.length == lang.filter(":checked").length){
$('.lang').hide();
$('.lang-all').click(function(){
$('.lang-all').hide();
$('.lang').slideToggle(200);
});
} else {
$('.lang').show();
$('.lang-all').hide();
}

if(gender.length == gender.filter(":checked").length){
$('.gender').hide();
$('.gender-all').click(function(){
$('.gender-all').hide();
$('.gender').slideToggle(200);
});
} else {
$('.gender').show();
$('.gender-all').hide();
}
});

所以这是我的代码,正如您在第 15 行看到的 if(gender... 我有以前代码的副本,只是将变量从“lang ”到“性别”。由于我有两个以上的变量,我不想为每个变量都复制代码,所以我希望有一个解决方案来优化它。

最佳答案

你可以写一个函数让你的代码更抽象,见:

function isChecked(obj, jq1, jq2){
if(obj.length == obj.filter(":checked").length){
jq1.hide();
jq2.click(function(){
jq2.hide();
jq1.slideToggle(200);
});
} else {
jq1.show();
jq2.hide();
}
}

//Your jQuery code, more abstract
$(function() {
var lang = $(".lang input[type='checkbox']");
var gender = $(".gender input[type='checkbox']");

isChecked(lang, $('.lang'), $('.lang-all'));
isChecked(gender, $('.gender'), $('.gender-all'));
});

关于javascript - 如何优化这个 javascript 重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36742448/

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