Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Переопределение событый (https://javascript.ru/forum/jquery/17331-pereopredelenie-sobytyjj.html)

Blazze 15.05.2011 03:45

Переопределение событый
 
Подскажите пожалуйта почему код

jQuery('.menu li ul').hide();

    jQuery('.menu li:has(ul)').click(function(event) {
        event.preventDefault();
        jQuery('.menu li ul').not(':hidden').slideUp(1500);
        if (jQuery(this).children().is(':hidden')) {
            jQuery(this).children().slideDown(1500);
    }
    return false;
    });


срабатывает так же для элементов не отвечающих основной выборке jQuery('.menu li:has(ul)'). Хочу перехватить и заменить только событие для этого элемента, а получается что при кликах на дочерних элементах, которые не имеют вложенных элементов ul всеравно выходит сворачивание списка вместо перехода по ссылке.

Подскажите пожалуйста, где хромает моя логика, чего я не понимаю?

Blazze 16.05.2011 13:31

не знаю на сколько это правильно, но добавив запрет на всплытие события все заработало..

jQuery('.menu li ul li').click(function(event) {
            event.stopPropagation();
        });


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