2016-01-24 2 views
0

Я новичок в EventEmitter2. Я понимаю, если вы хотите прослушивать событие, вы могли бы сделать это:Как подключить EventEmitter2 к элементу div

var EventEmitter2 = require('eventemitter2'); 
var server = new EventEmitter2(); 

server.on('touchend', test); // listen for event 
server.emit('touchend'); // fire off event 

function test() { console.log('hello'); } 

То, что я не понимаю, как я придаю эмиттер к DIV? В моем .js-файле я получаю элемент div, и я хочу подключить прослушиватель к этому элементу, поэтому я знаю, когда пользователь нажимает на него. Я ищу что-то вроде этого:

someDIV.on('touchend', test) 
function test() { console.log('hello'); } 

ответ

0

Вы должны получить реальное событие из браузера и передать его на сервер. Значение EventEmitter заключается в создании событийных сообщений в логической части скрипта. Например, ваша программа получает данные через ajax, и вы хотите получить уведомление в чем-то вроде console.log(); так что вы делаете что-то вроде этого:

server.on('gotAjax', function() { 
    console.log(arguments); 
}); 

//...far far at some other scope, where is only server from prev code is accessible .... 
function DataRecveived(data) { 
    render(data); 
    server.emit('gotAjax', data); // I not remember if need to "new Event()" here 

так в вашем случае, вы должны сделать что-то вроде

someDIV.addEventListener('touchend', function() { 
    server.emit('touchEnd'); 
}); 

или, если вам нужно что-то делать по touchend emited на сервере с DIV:

server.on('touchend') { 
    someDiv.classList.remove('touched'); 
} 
+0

Спасибо за помощь. Проблема в том, что «someDiv» не является экземпляром eventEmitter2, это div, поэтому он не имеет функции «on». Я пытался выяснить способ использования экземпляра eventEmitter2 с div, но это кажется невозможным. – theGoodMan

+0

Я отредактировал ответ, addEventListener - это собственный обработчик событий;) –

Смежные вопросы