我正在尝试将事件绑定到“方法”。 Javascript“class”的特定实例的使用jQuery。要求是我在事件处理程序中应该能够使用“this”和“this”。用于引用我最初将事件绑定到的实例的关键字。

更详细地说,我有一个“班级”。如下:

function Car(owner) {
  this.owner = owner;
}
Car.prototype = {
  drive: function() {
    alert("Driving "+this.owner+"s car!");
  }
}

一个例子:

var myCar = new Car("Bob");

我现在想要将事件绑定到驱动器“方法”。我的汽车,所以当我点击按钮时,例如驱动器“方法”。在Car“class”的myCar实例上调用。

到目前为止,我一直在使用以下函数创建一个闭包,允许我使用“this”来轻松访问实例成员。我的“方法”中的关键字。

function createHandler( obj, method ) {
  return function( event ) {
    return obj[method](event||window.event);
  }
}

我用过如下:

document.getElementById("myButton")
  .addEventListener("click", createHandler(myCar,"drive"));

如何使用JQuery完成这样的事情?

我特别询问关联“此”的问题。在指定的情况下,我可以独自处理另一个残骸。

有帮助吗?

解决方案

只需使用匿名函数:

$("#myButton").click(function() { myCar.drive(); });

其他提示

试试这个:

$("#myButton").each(function() {

var $btn = $(this);

    $btn.on('click',function(){

     // Do whatever you want.

    });
});

在这里,您首先创建一个循环来定位所有#myButton元素(在您的示例中哪个是错误的,您应该使用Class),如:

$(".myButton").each(...

然后我们将click事件处理程序附加到所有这些。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top