Я нарисовал свое «я» в углу, чтобы быстро прототип. Каков наилучший способ рефакторинга следующего кода jQuery? Его функциональность заключается в переключении между некоторыми элементами навигации боковой панели. Мне нужно, чтобы он был более динамичным, чтобы быть масштабируемым.Рефакторинг jQuery повторяющийся узор
Не могли бы вы добавить идентификаторы внутри операторов if, в массив и выполнить итерацию через них? Использовать переменные? Создайте функцию и вызовите ее на стороне 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