Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.07.2017, 17:10
Аспирант
Отправить личное сообщение для cadijob Посмотреть профиль Найти все сообщения от cadijob
 
Регистрация: 11.07.2017
Сообщений: 38

Проблема с обработкой второго нажатия(список 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"));
?
Или есть метод попроще?
Ответить с цитированием
  #2 (permalink)  
Старый 13.07.2017, 20:49
Аспирант
Отправить личное сообщение для cadijob Посмотреть профиль Найти все сообщения от cadijob
 
Регистрация: 11.07.2017
Сообщений: 38

Да, TagsPick.push($(this).children().attr("href"));
через это можно, мне кажется. Только как сравнить то по чему кликнул пользователь и тем что в массиве, через все элементы что бы проверить?
Ответить с цитированием
  #3 (permalink)  
Старый 13.07.2017, 20:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

cadijob,
Ответить с цитированием
  #4 (permalink)  
Старый 13.07.2017, 21:12
Аспирант
Отправить личное сообщение для cadijob Посмотреть профиль Найти все сообщения от cadijob
 
Регистрация: 11.07.2017
Сообщений: 38

Сообщение от рони Посмотреть сообщение
cadijob,
Ультра бред?
Ответить с цитированием
  #5 (permalink)  
Старый 13.07.2017, 21:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

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")
            }
        }
    });
Ответить с цитированием
  #6 (permalink)  
Старый 13.07.2017, 22:01
Аспирант
Отправить личное сообщение для cadijob Посмотреть профиль Найти все сообщения от cadijob
 
Регистрация: 11.07.2017
Сообщений: 38

Сообщение от рони Посмотреть сообщение
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);
чистит массив не правильно, если в нём больше трёх элементов, если меньше то всё ок.
В чём может быть проблема?
Ответить с цитированием
  #7 (permalink)  
Старый 13.07.2017, 22:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

cadijob,
TagsPick.splice(TagsPick.indexOf($(this).children().attr("href")), 1);
Ответить с цитированием
  #8 (permalink)  
Старый 13.07.2017, 23:12
Аспирант
Отправить личное сообщение для cadijob Посмотреть профиль Найти все сообщения от cadijob
 
Регистрация: 11.07.2017
Сообщений: 38

Сообщение от рони Посмотреть сообщение
cadijob,
TagsPick.splice(TagsPick.indexOf($(this).children().attr("href")), 1);
Спасибо большое!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с обработкой событий мыши firefox АлексТраст Элементы интерфейса 7 09.07.2012 16:42
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с обработкой формы в IE Check'Yr'Head Общие вопросы Javascript 1 15.12.2009 12:20
Проблема с обработкой события MazenRat Events/DOM/Window 4 17.07.2009 11:25
проблема с обработкой DIV nerik AJAX и COMET 2 22.08.2008 17:40