События клика на перекрывающихся элементах - PullRequest
8 голосов
/ 13 ноября 2009

у меня

  • строка таблицы с событием клика
  • с событием щелчка, эта кнопка находится в строке таблицы

и у меня проблема. Когда я нажимаю кнопку, выполняется событие щелчка строки, но я не хочу этого поведения. Я хочу выполнить только нажатие кнопки без щелчка строки.

Ответы [ 4 ]

7 голосов
/ 13 ноября 2009

Использование jQuery (из-за тега вопроса):

$('#yourButton').click(function(e) {
    // stop event from bubbling up to row element
    e.stopPropagation();

    // now do your stuff
});
5 голосов
/ 13 ноября 2009

посмотрите на ваш код, это то, что вы должны сделать в событии нажатия кнопки stopPropagation

3 голосов
/ 13 ноября 2009

Вы можете вызвать дополнительную функцию по клику

это функция:

function cancelBubble(e){

    e.cancelBubble = true;
    if(e.stopPropagation)
     e.stopPropagation();
}

И кнопка вкл. Нажмите, чтобы написать, как

onclick="yourfunctionname();cancelBubble(event)"

yourfunctionname :: это имя вашей функции, которую вы уже вызываете.

1 голос
/ 11 ноября 2013

Также У меня был выпадающий наложенный на кликабельный элемент. Так что просто используйте следующее, чтобы предотвратить распространение на базовый элемент для всех современных браузеров

onclick="yourfunctiontohandle();event.stopPropagation();"

Для более старых кросс-браузерных решений необходимо использовать IE event.cancelBubble

onclick="if(event.stopPropagation) event.stopPropagation(); else event.cancelBubble=true;"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...