如何将事件处理程序绑定到JQuery中的实例?
时间:2020-03-06 14:33:47 来源:igfitidea点击:
我正在尝试使用JQuery将事件绑定到Javascript"类"的特定实例的"方法"。要求是我在事件处理程序中应该能够使用" this"关键字来引用我最初将事件绑定到的实例。
更详细地说,说我有一个"班级",如下所示:
function Car(owner) { this.owner = owner; } Car.prototype = { drive: function() { alert("Driving "+this.owner+"s car!"); } }
还有一个实例:
var myCar = new Car("Bob");
现在,我想将一个事件绑定到我的汽车的驱动器"方法",以便每次单击按钮时,都会在汽车"类"的myCar实例上调用驱动器"方法"。
到目前为止,我一直在使用以下函数来创建一个闭合,该闭合允许我使用"方法"中的" this"关键字轻松地访问实例成员。
function createHandler( obj, method ) { return function( event ) { return obj[method](event||window.event); } }
我已经如下使用它:
document.getElementById("myButton") .addEventListener("click", createHandler(myCar,"drive"));
我如何用JQuery完成类似的事情?
我特别询问将" this"与指定的实例相关联,我可以自己处理的所有其他问题。
解决方案
只需使用匿名函数即可:
$("#myButton").click(function() { myCar.drive(); });