HTMLКак предотвратить изменение значения переменной внутри кликов и функции fadeOut?
<div class="dropdown">
<label class="add-genre-filter not-selected">Add genre filter</label>
<select class="filter" name="filter[]">
<option value="some-value">Some Item</option>
<option value="some-value">Some Item</option>
<option value="some-value">Some Item</option>
<option value="some-value">Some Item</option>
</select>
<span class="cancel"> x </span>
</div>
JS
$(document).ready(function(){
var genreLimit = 3;
$('.dropdown .add-genre-filter').live('click', function(){
genreLimit ? ($(this).parent().append(options) , genreLimit--) : false;
console.log(genreLimit);
});
$('.dropdown .cancel').live('click', function(){
$(this).prev().fadeOut("normal", function(){ $(this).remove(); });
$(this).fadeOut("normal", function(){ genreLimit++; $(this).remove(); });
console.log(genreLimit);
});
});
NB: Я использую JQuery 1.6, поэтому до сих пор используют live()
функцию
При нажатии на <span class="cancel">
как select
и span
исчезают и удаляются из документа. В то же время это увеличивает стоимость genreLimit
по 1
Но если я несколько раз нажмите на х в span
затем genreLimit
значение увеличивается на количество кликов, пока она не исчезнет полностью аутов. Я знаю, что это должно быть уменьшено, потому что оно находится внутри события click.
Однако, я хочу увеличить значение только один раз в fadeOut. Таким образом, нажатие нескольких раз не изменит мою функциональность. Что можно сделать здесь?
Ваш '.Добавьте-жанрово-filter' щелчок может быть просто:. 'Если (genreLimit && $ (» выпадающий .cancel '). is (': animated ')) $ (this) .parent(). append (options), genreLimit -; ' –
Вы действительно должны изучить более современное jQuery и вариант .one() на .на(); см.: http://api.jquery.com/one/ –
В отличие от сайтов на форуме, мы не используем «Спасибо», или «Любая помощь оценена» или подписи на [so]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - спасибо за сообщение). BTW, это «Спасибо заранее», а не «Спасибо в продвинутом». –