爲了快速構建原型,我已將自己繪製到一個角落。 重構以下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