2012-06-20 2 views
2

У меня есть ячейка таблицы (td), которая запускает скрипт при нажатии. У меня есть div внутри этой ячейки таблицы, которая запускает другой div при нажатии. Я успешно использовал приведенный ниже код, чтобы отменить пузырьки событий (поэтому событие div не вызывает событие td).Как отменить пузыри событий в Firefox?

if (!e) var e = window.event; 

e.cancelBubble = true; 
e.stopImmediatePropagation(); 
e.returnValue = false; 

if (e.stopPropagation) 
{ 
    e.stopImmediatePropagation(); 
    e.stopPropagation(); 
    e.preventDefault(); 
} 

Все работает как в Chrome, Safari, так и в Opera. Почему он не мешает пузырям событий в Firefox? Есть ли какое-то исправление в Firefox, о котором я должен знать?

+0

Можете ли вы ссылаться на страницу, показывающую проблему? –

ответ

1

event.stopImmediatePropagation() Я думаю, что останавливает других слушателей от того же события, чтобы называться таким образом делая event.stopPropagation() вызов после неэффективна. Попробуйте использовать только event.stopPropagation().

0

Я считаю, что этот кусок кода должен быть достаточно:

e = e || window.event; 

if (e.stopPropagation) { 
    e.stopPropagation(); 
} 

// other piece of code here