2016-01-24 106 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是本機事件處理程序;) –