我有一个 js 函数,到目前为止,它始终是单击事件的回调,因此严重依赖“this”伪变量。 “this”是一个
但是,我现在遇到的情况是,有时会使用更复杂的路线触发它,在这种情况下,“this”是一个完全不同的元素。但是,在调用该函数之前,我可以找到相关的
编辑事实证明,each()确实适用于单个元素..错误结果是其他原因。
尚未删除此问题,因为它可能对其他人有用
最佳答案
您正在寻找call方法:
function onClick() {
console.log(this); // will be the #test element in both cases
return false;
}
$('#test').click(onClick);
$('#test2').click(function() {
onClick.call($('#test')[0]);
return false;
});
尽管这也可以通过 apply 实现:
onClick.apply($('#test')[0]);
[0]
是传递实际 DOM 元素而不是 jQuery 包装集所必需的。
关于javascript - 如何使用 jQuery 设置单个项目的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1064646/