Проблема с обработкой второго нажатия(список ul li)
Привет.
Есть такой код - $(".tags li").click(function(){ if (CloseArea === false) { if(clicks == 0){ $(this).css( "transform", "scale(0.85)" ); TagsPick.push($(this).children().attr("href")); clicks = 1; } else { alert("test"); clicks = 0; } } }); Когда нажимаю на один li всё норм, потом на него же, всё норм, alert работает. А вот если нажму на один, а потом на другой, то всё равно будет alert работать. Как решить эту проблему? Может идентифицировать тот li, по которому нажал пользователь с помощью TagsPick.push($(this).children().attr("href"));? Или есть метод попроще? |
Да, TagsPick.push($(this).children().attr("href"));
через это можно, мне кажется. Только как сравнить то по чему кликнул пользователь и тем что в массиве, через все элементы что бы проверить? |
cadijob,
:-? |
Цитата:
|
cadijob,
кто его знает что вы творите, но попробуйте так $(".tags li").click(function(){ if (CloseArea === false) { if($(this).is(".gmak")){ alert("test"); $(this).removeClass("gmak") } else { $(this).css( "transform", "scale(0.85)" ); TagsPick.push($(this).children().attr("href")); $(this).addClass("gmak") } } }); |
Цитата:
Но есть проблема - $(".tags li").click(function(){ if (CloseArea === false) { if($(this).is(".gmak")){ $(this).css( "transform", "scale(1)" ); $(this).removeClass("gmak") TagsPick.splice($(this).children().attr("href"), 1); } else { $(this).css( "transform", "scale(0.85)" ); TagsPick.push($(this).children().attr("href")); $(this).addClass("gmak") } console.log(TagsPick); } }); TagsPick.splice($(this).children().attr("href"), 1);чистит массив не правильно, если в нём больше трёх элементов, если меньше то всё ок. В чём может быть проблема? |
cadijob,
TagsPick.splice(TagsPick.indexOf($(this).children().attr("href")), 1); |
Цитата:
|
Часовой пояс GMT +3, время: 17:16. |