Как отключить развертывание / свертывание при двойном щелчке в таблице XUL - PullRequest
0 голосов
/ 19 января 2012

У меня есть дерево XUL в моем расширении Firefox. Когда я дважды щелкаю по строке, строка сворачивается или расширяется. Как я могу отключить это поведение (чтобы свертывание и развертывание происходили только при нажатии на знаки плюс / минус)? Я хотел бы зарезервировать двойной щелчок для чего-то другого.

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

tree.addEventListener("dblclick", onTreeDoubleClick, true);

onTreeDoubleClick = function(event) {
    event.preventDefault();
    event.stopPropagation();
}

1 Ответ

0 голосов
/ 19 января 2012

Дерево получает событие раньше, чем вы. AFAIK единственный способ получить его раньше - это зарегистрировать обработчик событий захвата в родительском элементе дерева:

tree.parentNode.addEventListener("dblclick", onTreeDoubleClick, true);

Конечно, это предполагает, что родительский элемент не содержит элемента, отличного от <tree>, в противном случае вы также ловите события на этих элементах - но вы всегда можете поместить элемент <tree> в его собственный <box> элемент только для этого.

...