2013-09-23 2 views
1

У меня есть сценарий, где я добавить EventListener с чистым JavaScript, как это:Почему jQueries запуска не называют EventListener

body.addEventListener('click', track, false); 

В моем тестовом модуле я хочу стрелять событие на элемент в body ,

$('#test').trigger('click') 

Но это не сработает. Кажется, что это работает, если я добавлю eventListener с помощью jQuery. Также я могу инициировать событие с использованием чистого JavaScript.

var event = new MouseEvent('click', { 
    'view': window, 
    'bubbles': true, 
    'cancelable': true 
    }); 

$('#test')[0].dispatchEvent(event); 

Так может кто-то объяснить, почему trigger здесь не работает?

+0

Да, '.trigger()' только триггеры событий добавлены с JQuery, это, как он был разработан. Я не знаю, какое объяснение вы ищете. – JJJ

+0

@Juhana не правда: [вот триггер jQuery, запускающий родное связанное событие] (http://jsfiddle.net/barney/BRYWk/). Возможно, вы думаете о «триггер-сандлере» (http://api.jquery.com/triggerHandler/). – Barney

ответ

2

Works for me.

Не может видеть весь ваш код - это может быть, что track не определена, body не назначен, или нет #test элемента в вашем HTML - но вы пропустили первый закрывающий апостроф:

$('#test).trigger('click') 

... который должен быть:

$('#test').trigger('click') 
Смежные вопросы