Проблемы перехватов событий. jQuery перехватывает события раньше времени.
При выполнение вот этого кода jQuery, происходит перехват события и код php не выполняется. В частности, событие toggle не даёт произвести щелчок на ссылке и код php не выполняется:
$(document).ready(function() { $('#menu_products > li > ul' ) .hide() .click(function(event) { event.stopPropagation(); }); $('#menu_products > li').toggle(function() { $(this).find('ul').slideDown(); }, function() { $(this).find('ul').slideUp(); }); }); Как обойти эту проблему?! Мне в любом случае, необходимо выполнить обработку запроса php до перехвата. А вот ссылка с php кодом, которая должна выполниться до перехвата при щелчке: <a href="/?controller=category&id={$itemChild['id']}" title="{$itemChild['name']}">{$itemChild['name']}</a> Заранее благодарю за помощь.) |
уберите event.stopPropagation();
|
Нет. Пробовал и ничего не получается. Нужны другие варианты. В частности, когда убираю функцию toggle или меняю её на другую функцию, то всё сразу же работает. Но мне нужна в любом случае функция toggle. Так что, нужны другие варианты.
|
$(document).ready(function() { var flag = true; $('#menu_products > li > ul' ) .hide() .click(function(event) { event.stopPropagation(); }); $('#menu_products > li').click(function () { if (flag) { $(this).find('ul').slideDown(); } else { $(this).find('ul').slideUp(); } flag=!flag; }); }); |
Так код php работает, но jQuery перестаёт. Немного не то. Т.е. мне нужно перейти по ссылке, до выполнения кода jQuery. Но как известно, объект DOМ перехватывает все сообщения и jQuery этим спокойно пользуется.
|
Проблема пока не решена. Если сам разберусь, то отпишусь здесь.)
|
Rodger1956629,
нет давно toggle в jquery для кликов ... 100500 раз на форуме написано ... замена тут http://javascript.ru/forum/jquery/40...tml#post263492 tsigel, на всякий случай http://api.jquery.com/slideToggle/ |
Что значит:
Цитата:
|
рони,
Да, я знаю, спасибо. Подзабыл, давно jQuery перестал юзать... |
Цитата:
event.target.tagName && event.target.tagName != "A" && event.stopPropagation(); |
Часовой пояс GMT +3, время: 00:49. |