Можно ли иметь триггер jQuery.click только для верхнего элемента? - PullRequest
6 голосов
/ 25 февраля 2009

Я пытаюсь создать сайт, где пользователь может нажать на любой элемент, чтобы отредактировать его CSS. Я использую следующее, чтобы добавить функцию щелчка ко всем lis, div и uls.

$('li,div,ul').click(function () {  

alert(this.id); 

});

Проблема в том, что если я нажму на элемент li, я получу предупреждение об этом и любой элемент под ним. (все контейнеры).

Возможно ли при нажатии только верхний элемент запуска?

Ответы [ 3 ]

17 голосов
/ 25 февраля 2009

Если вы хотите остановить распространение события, вы делаете это в jQuery, вызывая метод stopPropagation для объекта события.

$('li,div,ul').click(function (e) {  
    e.stopPropagation();
    alert(this.id); 
});
1 голос
/ 25 февраля 2009

Мне кажется, что вы ищете .stopPropagation () . Вызов stopPropagation предотвратит всплытие события в родительские контейнеры.

1 голос
/ 25 февраля 2009

Полагаю, вы захотите использовать stopPropagation (); внутри функции щелчка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...