Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   click срабатывает со второго раза (https://javascript.ru/forum/jquery/23710-click-srabatyvaet-so-vtorogo-raza.html)

jsuse 02.12.2011 21:56

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 подглючивает, когда встречается сложный код?

devote 02.12.2011 22:38

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

jsuse 03.12.2011 03:44

Цитата:

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


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


Часовой пояс GMT +3, время: 13:57.