Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.08.2014, 20:25
Интересующийся
Отправить личное сообщение для Rodger1956629 Посмотреть профиль Найти все сообщения от Rodger1956629
 
Регистрация: 30.07.2013
Сообщений: 21

Проблемы перехватов событий. 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>

Заранее благодарю за помощь.)

Последний раз редактировалось Rodger1956629, 12.08.2014 в 12:32.
Ответить с цитированием
  #2 (permalink)  
Старый 11.08.2014, 20:28
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

уберите event.stopPropagation();
Ответить с цитированием
  #3 (permalink)  
Старый 11.08.2014, 20:31
Интересующийся
Отправить личное сообщение для Rodger1956629 Посмотреть профиль Найти все сообщения от Rodger1956629
 
Регистрация: 30.07.2013
Сообщений: 21

Нет. Пробовал и ничего не получается. Нужны другие варианты. В частности, когда убираю функцию toggle или меняю её на другую функцию, то всё сразу же работает. Но мне нужна в любом случае функция toggle. Так что, нужны другие варианты.
Ответить с цитированием
  #4 (permalink)  
Старый 11.08.2014, 20:34
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

$(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;
  });

});
Ответить с цитированием
  #5 (permalink)  
Старый 11.08.2014, 20:41
Интересующийся
Отправить личное сообщение для Rodger1956629 Посмотреть профиль Найти все сообщения от Rodger1956629
 
Регистрация: 30.07.2013
Сообщений: 21

Так код php работает, но jQuery перестаёт. Немного не то. Т.е. мне нужно перейти по ссылке, до выполнения кода jQuery. Но как известно, объект DOМ перехватывает все сообщения и jQuery этим спокойно пользуется.

Последний раз редактировалось Rodger1956629, 11.08.2014 в 20:43.
Ответить с цитированием
  #6 (permalink)  
Старый 11.08.2014, 20:44
Интересующийся
Отправить личное сообщение для Rodger1956629 Посмотреть профиль Найти все сообщения от Rodger1956629
 
Регистрация: 30.07.2013
Сообщений: 21

Проблема пока не решена. Если сам разберусь, то отпишусь здесь.)
Ответить с цитированием
  #7 (permalink)  
Старый 11.08.2014, 20:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Rodger1956629,
нет давно toggle в jquery для кликов ... 100500 раз на форуме написано ... замена тут неразбериха с toggle

tsigel,
на всякий случай http://api.jquery.com/slideToggle/
Ответить с цитированием
  #8 (permalink)  
Старый 11.08.2014, 20:48
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Что значит:
Сообщение от Rodger1956629 Посмотреть сообщение
Так код php работает, но jQuery перестаёт.
Ответить с цитированием
  #9 (permalink)  
Старый 11.08.2014, 20:49
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

рони,
Да, я знаю, спасибо. Подзабыл, давно jQuery перестал юзать...
Ответить с цитированием
  #10 (permalink)  
Старый 11.08.2014, 20:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от tsigel
уберите event.stopPropagation();
с условием если кликнули по ссылке
event.target.tagName && event.target.tagName != "A" &&  event.stopPropagation();
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик событий kucaeva Общие вопросы Javascript 2 10.12.2010 16:42
обработчик события focus для окна Сергей Д Internet Explorer 4 22.09.2010 17:33
jQuery проблемы с раскрывающимся списком teclis jQuery 3 24.08.2010 12:25
События Jquery и не только Tohin Events/DOM/Window 3 21.08.2009 14:57
Обработчик события: как делает jquery? Shasoft jQuery 35 22.04.2009 09:41