У меня есть следующая структура веб-приложения, на которое я автоматизирую тестирование:
<em unselectable="on" class="x-btn-split">
<button type="button" class="x-btn-text " id="ext-gen523" title="Add Options">Add</button>
</em>
Оба объекта имеют слушателей события, добавил viw JavaScript в некотором связанном js-файле (я не знаю что файл точно).
После нажатия на кнопку "Add" с мышью, вызовами функции Ajax вызовов и строкой, добавляющей к некоторой таблице, после нажатия на них элемент, открывает меню приложения.
Я пытаюсь воспроизвести кнопку ADD via VBScript нажатия (как я говорю, я автоматизирую тестирование этого приложения), вместо того, чтобы добавить строку в таблицу, открытие меню приложения. Но я знаю точно, что я нажимаю кнопку Add, но не их-элемент. PseudoCode, которые делают так:
set obj = domHelper.GetElementByClassName(container,"x-btn-text","button")
obj.click
Сообщите мне, Знаете ли Вы причины этого поведения, потому что я, действительно не знают, что думать. (Я попробовал много разных подходов для фиксации этого, но ничто не помогло),
Спасибо!
щелкните
, как и большинство событий, «всплывает» через все элементы-предки. Когда вы нажимаете
, да, вы также нажимаете
, который его содержит.
Если обработчик событий для
должен знать, что щелчок был непосредственно в области содержимого
, но не в каком-либо из его дочерних элементов, он должен перед открытием меню посмотрите на свойство event.target
( srcElement
в IE <9), чтобы убедиться, что нажатие происходит на нем самом или не на кнопке. В качестве альтернативы, если обработчик нажатия кнопки вызывает event.stopPropagation ()
( cancelBubble = true
в IE <9), событие остановится и больше не пропадет.