2010-06-30 3 views
1

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

На базовый div событие зарегистрировано на двойным щелчком мыши.

На DIV, который находится выше другого сНу событие регистрируется по щелчку, который скрывает DIV.

Проблема заключается в том, что если я двойном щелчке на вышеприведенном ДИВ элементе он скрыт после первого щелчка НО второй щелчок вызывает двойное событие щелчка на подстилающих дела до огня - как я могу предотвратить это?

+0

Waitaminute ... мы пытаемся предотвратить действия по умолчанию, а не предотвращать пузырьки событий (ответ Pointy ниже). Является ли «выше» div дочерним элементом «ниже» div? Или они находятся в разных частях дерева DOM? –

ответ

2

Смешивание «щелчок» и «двойной щелчок» будет в лучшем случае проблематичным. Однако в этом случае вещи могут стать лучше, если вы просто убедитесь, что ваш обработчик для события «click» (событие, которое скрывает элемент) возвращает false в браузер.

Как это сделать, это зависит от того, как зарегистрирован ваш обработчик. Если это так:

<div onclick='hideMe();'> 

, то вы бы изменить, что

<div onclick='hideMe(); return false'> 

Если вы используете какую-то рамку или другие средства прикрепления обработчика, то только имея функцию обработчика возвращения false должен это сделать.

+0

Если возвращение ложное не делает, то что-то подобное должно помочь (в теле обработчика): если (е && e.preventDefault) \t \t { \t \t \t e.preventDefault(); \t \t} \t \t иначе, если (window.event && window.event.returnValue) \t \t { \t \t \t window.eventReturnValue = ложь; \t \t} –

+0

Да, @Ryan, это правда, но у меня никогда не было проблемы с просто возвращением false. Теперь, правда, вы можете получить больше контроля над такими вещами, как «preventDefault()», и иногда это очень важно. – Pointy

+0

Я пробовал оба решения (я уже вернул false в слушателе), но это не решило проблему. Проблема не в том, что одно событие публикуется далеко. Есть два события: onclick и ondblclick ... Я хочу предотвратить запуск ondblclick –

Смежные вопросы