为了快速构建原型,我已将自己绘制到一个角落。 重构以下jQuery代码的最佳方式是什么?其功能是在一些侧栏导航项目之间切换。为了可扩展性,我需要它更加动态。重构jQuery重复模式
您是否将if语句中的ID添加到数组中并遍历它们?使用变量?创建一个函数并在html端onClick上调用它?不管我怎么想,它都会导致一堆重复的代码。
谢谢!
// TOGGLING LEFT NAVIGATION
$('#settingsClick').click(function() {
if($('#addContainer, #noteContainer, #logoContainer, #themeContainer').is(':visible')) {
$('#addContainer').slideUp(350);
$('#noteContainer').slideUp(350);
$('#logoContainer').slideUp(350);
$('#settingsContainer').slideDown(350);
$('#themeContainer').slideUp(350);
} else {
$('#settingsContainer').slideToggle(350);
}
});
$('#addClick').click(function() {
if($('#settingsContainer, #noteContainer, #logoContainer, #themeContainer').is(':visible')) {
$('#settingsContainer').slideUp(350);
$('#noteContainer').slideUp(350);
$('#logoContainer').slideUp(350);
$('#addContainer').slideDown(350);
$('#themeContainer').slideUp(350);
} else {
$('#addContainer').slideToggle(350);
}
});
$('#noteClick').click(function() {
if($('#settingsContainer, #addContainer, #logoContainer, #themeContainer').is(':visible')) {
$('#settingsContainer').slideUp(350);
$('#addContainer').slideUp(350);
$('#logoContainer').slideUp(350);
$('#noteContainer').slideDown(350);
$('#themeContainer').slideUp(350);
} else {
$('#noteContainer').slideToggle(350);
}
});
$('#logoClick').click(function() {
if($('#settingsContainer, #addContainer, #noteContainer, #themeContainer').is(':visible')) {
$('#settingsContainer').slideUp(350);
$('#addContainer').slideUp(350);
$('#noteContainer').slideUp(350);
$('#logoContainer').slideDown(350);
$('#themeContainer').slideUp(350);
} else {
$('#logoContainer').slideToggle(350);
}
});
$('#themeClick').click(function() {
if($('#settingsContainer, #addContainer, #noteContainer, #logoContainer').is(':visible')) {
$('#settingsContainer').slideUp(350);
$('#addContainer').slideUp(350);
$('#noteContainer').slideUp(350);
$('#logoContainer').slideUp(350);
$('#themeContainer').slideDown(350);
} else {
$('#themeContainer').slideToggle(350);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="settingsClick">Click Me</a><br>
<div id="settingsContainer">Content...</div>
<br><br>
<a id="addClick">Click Me</a><br>
<div id="addContainer">Content...</div>
<br><br>
<p> Etc... Etc....</p>
Satpal,你打我吧。现在,示例html已经启动。 – Sergio
是的我可以访问html代码 – Sergio