2012-03-29 70 views
3

這裏是我的代碼:添加事件偵聽器時,如何將數據傳遞給函數?

$(document).ready(function(){ 
dropbox.addEventListener("dragenter", somethingHappens, false); 
}); 

function somethingHappens(evt) { 
    // code here 
} 

我怎樣才能連接事件偵聽器時將數據傳遞到somethingHappens()函數?那可能嗎?我正在尋找我可以做的事情:

function somethingHappens(evt,dataItem1,dataItem2) { 
    // code here, I need to use evt here 
} 

感謝您的幫助!

回答

4

你可以做到這一點老派的方式,如果你不介意使用匿名函數作爲處理程序:

var data = { foo: 'bar' }; 

dropbox.addEventListener("dragenter", function(evt) { 
    somethingHappens.call(this, evt, data); 
}, false); 

function somethingHappens(evt, data) { 
    console.log(data); 
} 

但我也敢肯定你可以使用jQuery事件這樣的:

$(dropbox).bind('dragenter', { foo: 'bar' }, somethingHappens); 

function somethingHappens(evt) { 
    console.log(evt.data); 
} 
1

你可以使用jQuery的bind方法: -

$(document).ready(function(){ 
$('#yourdropboxid').bind("dragenter", { foo: 'bar' }, somethingHappens); 
}); 

function somethingHappens(event) { 
    alert(event.data.foo); // alerts 'bar' 
} 
相關問題