$.proxy Ez a metódus egy meglévő funkciót visszaad, egy új adott kontextusban.
Gyakran használják események egy elemhez történő rögzítésére, ahol a kontextus, más objektumra mutat vissza.
$(document).ready(function(){
test = function(){
this.txt = "Ez egy objektum tulajdonság.";
// $("div").click($.proxy(this.myClick, this)); // Ez, minden div szakaszra érvényes.
$("#prox").click($.proxy(this.myClick, this)); // Ez, csak az id=prox azonosítóval rendelkező div szakaszra érvényes.
};
test.prototype.myClick = function(event){
alert(this.txt);
alert(event.currentTarget.nodeName);
};
var x = new test();
});
2.Példa:
Futtassuk le, a funkciókat. Kattintsunk a button gombokra!
$(document).ready(function(){
var celSzemelyKJ = { Neve: "Kovács János", Kora: 45, Cime:"jQuery út 322",
adatai: function()
{
$("#d_proxy").html("Neve: " + this.Neve + "<br />Életkora: " + this.Kora + "<br />Lakcíme: " + this.Cime);
}
};
var celSzemelyKF = { Neve: "Kovács Ferenc", Kora: 65, Cime:"jQuery út 22",
adatai: function()
{
$("#d_proxy").html("Neve: " + this.Neve + "<br />Életkora: " + this.Kora + "<br />Lakcíme: " + this.Cime);
}
};
$("#btnKJ").click($.proxy(celSzemelyKJ, "adatai"));
$("#btnKF").click($.proxy(celSzemelyKF, "adatai"));
});
<button id="btnKJ">1.<br /> Kovács János<br />Adatai.</button>
<button id="btnKF">2.<br /> Lakatos Ferenc<br />Adatai.</button>
<p id="d_proxy"></p> // Adatok kiíratásának helye.