我正在尝试处理像这样的简单JQuery点击事件
$('nav.menu a').on('click', function(){
console.log($(this)); // returns the DOM element
});
但是由于我想重用闭包,我将它改为普通函数:
function myClickCallback(event, someParam){
console.log($(this)); // returns the 'window' obj
}
$('nav.menu a').on('click', myClickCallback(event, someParam));
所以问题是如何从myClickCallback
函数
答案 0 :(得分:2)
您可以使用event.target
function myClickCallback(event){
console.log($(event.target));
}
$('nav.menu a').on('click', myClickCallback);
如果要将参数传递给函数,可以使用event.data的传输机制。 event.data
包含调用事件处理函数时传递给$.on
的数据参数:
function myClickCallback(event){
console.log('event on ' + $(event.target));
console.log('param ' + event.data);
}
$('nav.menu a').on('click', null, 'theParam', myClickCallback);