/ / jQuery binden mit einem anderen - javascript, jquery

jQuery binden mit einem anderen dies - javascript, jquery

Ich möchte eine Funktion an ein Ereignis binden, aber ich möchte den Kontext ändern, in dem die Funktion aufgerufen wird

function Foo(){

t : "123",
bar: function(){
// I am here
$("#selector").bind("click" this.foo);
}
,
foo: function(){
//I want when to be able to use the current object here by this
//this.t should be 123 and this.bar should call the above function
}
}

Antworten:

5 für die Antwort № 1

Sie können verwenden jQuery.proxy:

$("#selector").bind("click", $.proxy(this.foo,this) );

1 für die Antwort № 2

Kopieren Sie den Verweis auf das Objekt in eine lokale Variable und verwenden Sie ihn in einer Funktion:

var me = this;
$("#selector").bind("click" function() { me.foo(); });

Wenn Sie das Ereignisobjekt benötigen, übergeben Sie es an:

var me = this;
$("#selector").bind("click" function(e) { me.foo(e); });