我正在尝试处理像这样的简单 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
函数中访问单击的元素
最佳答案
您可以使用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);
关于javascript - JQuery 访问单击的元素而不使用闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35253055/