можно восстановить несколько предыдущее значение, связанное с this
?Как восстановить предыдущее значение (javascript)?
Я создаю динамическое меню, и для меня это необходимо ... К сожалению, код слишком длинный, и я не могу его вернуть сюда или на jsfiddle, но я создал простой пример, который вы понимаете, что я имею в виду:
<div id="block-system-main-menu">
<ul>
<li><a href='#'>Mappe</a></li>
<li><a href='#'>Vulc</a></li>
<li><a href='#'>Equa</a></li>
</ul>
</div>
А вот Js код:
$('#block-system-main-menu').on('click', 'li', function() {
if ($(this).children('a').text() != cliccato) {
$(this).append('<span> clicked</span>');
alert('not equal');
} else if ($(this).children('a').text() == cliccato) {
$(this).find('span').remove();
alert('equal');
}
//
var cliccato = $(this).children('a').text();
});
здесь jsfiddle: http://jsfiddle.net/ve1cd5vx/
практически в первый раз нажав на ссылку Я добавил диапазон, но когда я нажимаю снова на ту же ссылку, не удаляет диапазон ...
поэтому не работает else if
кода js ... потому что переменная cliccato
не определена, но если есть способ восстановить предыдущее значение , все будет разрешено.
(другие решения, которые уже доказали, как создавать переменные, которые изменяют значение, основанное на количестве кликов в моем случае значительно расширит код)
Спасибо и извините за мой английский
В вашем jsfiddle 'cliccato' является' undefined' так 'Text' значение любого щелкнуло ссылку всегда будет отличаться от него (и второй ветви не будет выполняться). Попробуйте использовать класс ('.js-clicked'?), Когда произойдет щелчок, а затем просто проверьте наличие такого класса, как критерии в' if'. – MarcoL
Еще одна небольшая мысль о блоке 'if/else' заключается в том, что вам не требуется второй' if', достаточно простого. – MarcoL