Как вызвать событие, связанное с dojoAttachEvent? - PullRequest
0 голосов
/ 14 июля 2011

Допустим, у меня есть элемент на веб-странице, созданный с помощью виджета Dojo, к которому прикреплены события с использованием dojoAttachEvent, который выглядит следующим образом:

<span id="menuItemIWantToTrigger" dojoattachevent="onMouseOver: onHover; onMouseOut: onUnhover; onClick: _onClick;" class="dojoMenuItem2" style="-moz-user-select: none;" dojoinsertionindex="4">Workflow...</span>

Мне нужно щелкнуть другой элемент на странице, чтобы вызватьсобытие onClick для элемента виджета.В Firefox 5 я могу удаленно вызывать событие, используя обычный старый метод JavaScript .click (), например:

document.getElementById('menuItemIWantToTrigger').click();

В других браузерах (например, Firefox 3.6 и 4) этот метод не работает,Похоже, что эти браузеры не передают инициированное событие click на обработчики dojoAttachEvent виджета, но Firefox 5 (и, как ни странно, IE 7) это делает;на самом деле, эти браузеры, похоже, обрабатывают dojoAttachEvents точно так же, как обычные старые события DOM.Итак, есть ли способ, как я могу вызвать onClick dojoAttachEvent во всех браузерах так же, как я могу запустить его в Firefox 5?

Важное замечание: у меня нет доступа к коду, который создает виджет dojoэлементы, поэтому я не могу переписать способ привязки событий.

Спасибо за любую помощь!

1 Ответ

1 голос
/ 15 июля 2011

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

См. Этот вопрос: Как создать событие щелчка правой кнопкой мыши во всех браузерах и этот ответ (на другой вопрос) для общего решения по отправке событий.

Другим, более чистым и лучшим решением было бы непосредственное использование функции обработчика Но я не знаю, есть ли у вас доступ к нему.

...