Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.12.2011, 21:56
Аспирант
Отправить личное сообщение для jsuse Посмотреть профиль Найти все сообщения от jsuse
 
Регистрация: 10.04.2010
Сообщений: 92

click срабатывает со второго раза
Никто не замечал ли случайно такую особенность jQuery. Событие начинается только со второго клика, хотя должно начинаться как обычно - с одного клика.

Есть такой код:
$("#button").live("click", function() {
    if ($("#div").attr("display") == "none") {
        $("#div").attr("display","inline-block");
        $("#div").slideDown();
    }
    else {
        $("#div").slideUp();
        $("#div").attr("display","none");
    }  
});

Все работает, все открывает, но открывает только когда по элементу кликнешь дважды. Не так дважды как при double click, а просто с первого раза не срабатывает. Кликнул - ничего не происходит. Чтобы элемент открылся, нужно кликнуть еще раз. Причем такое замечается только при else/if. Когда просто
$("#button").live("click", function() {
$("#div").slideDown();
});
, то работает как надо, с одного клика.

В чем может быть проблема? jQuery подглючивает, когда встречается сложный код?
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2011, 22:38
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

нет, просто первый код написан не правильно.. display не являеться атрибутом, это свойство CSS поэтому и получать/ставить его нужно иными спосабами через метод .css() а не через .attr()
Ответить с цитированием
  #3 (permalink)  
Старый 03.12.2011, 03:44
Аспирант
Отправить личное сообщение для jsuse Посмотреть профиль Найти все сообщения от jsuse
 
Регистрация: 10.04.2010
Сообщений: 92

Сообщение от devote Посмотреть сообщение
нет, просто первый код написан не правильно.. display не являеться атрибутом, это свойство CSS поэтому и получать/ставить его нужно иными спосабами через метод .css() а не через .attr()

Спасибо, это действительно так. Тут же заработало.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция внутри Live() срабатывает после второго клика Ad1r jQuery 7 09.08.2011 14:11
Обработчик click вызывается несколько раз или не всегда вызывается OlegJquery jQuery 2 21.07.2011 20:37
onkeyup - вызывается 3 раза подряд. розовый слоник Events/DOM/Window 1 28.04.2011 20:27
live click выполняется несколько раз hara jQuery 9 09.06.2010 10:58
Не срабатывает bind(и click) после load (или get) dijah jQuery 3 27.01.2009 20:05