Как программно сгенерировать window.event, используя Javascript? - PullRequest
2 голосов
/ 23 октября 2009

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

function someFunction() 
{

    var evt = window.event ? window.event : event;

    if (evt == null) { return; }

    var nodeElement = evt.srcElement;

    if (nodeElement == null) { return; }
    .
    .
    .
}

Мой текущий подход состоит в том, чтобы попытаться создать пользовательское событие в моем тестовом файле, которое будет заполнять window.event, чтобы я мог, по крайней мере, получить возможность проверить nodeElement == null Но у меня возникают трудности при этом (не из фона Javascript). Как на самом деле создать собственное событие (в IE)? В настоящее время я делаю модульное тестирование с использованием JsTestDriver, поэтому HTML-файл не используется. Я не против использования jQuery или просто простого решения Javascript.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 23 октября 2009

Я бы определенно использовал jQuery (или какой-то другой фреймворк). Это сделает вашу жизнь проще. Я уверен, что у каждого браузера будет свой способ инициировать событие.

http://docs.jquery.com/Events

С jQuery вы просто делаете что-то вроде

$(window).trigger("eventname")
0 голосов
/ 23 октября 2009

Как указал Алекс в своем комментарии, вы можете использовать jQuery для создания событий с

$("css selector here").jQueryEventFunction(functionToCall);

Итак, следуя вашему примеру, если вы хотите вызвать someFunction при нажатии на ярлык, вы можете сделать:

$("#label-id").click(someFunction);

Теперь, если вы хотите смоделировать щелчок по нему

$("#label-id").click();

И это сделает это.

РЕДАКТИРОВАТЬ Для события окна вы можете использовать

$(window).click(someFunction);

Это свяжет любой щелчок, сделанный в окне, с someFunction. И если вы позвоните $(window).click();, будет смоделировано событие щелчка, вызывающее someFunction.

0 голосов
/ 23 октября 2009

В настоящее время я написал серию постов в блоге о пользовательских событиях в jQuery. Вы можете использовать .trigger и .bind, и это действительно мощно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...