2016-06-22 13 views
0

Diese Antwort https://stackoverflow.com/a/4196018/545430 besagt, dass das "dieses" Objekt, wenn es in einem JQuery-Rückruf verwendet wird, sich auf das ausgewählte Element bezieht, zu dem der Rückruf hinzugefügt wird. Dies gilt jedoch nicht zur Arbeit erscheinen, wenn der bereiten Rückrufs eines Kind Fenster Einstellung:Javascript dies gibt Wrong Value Inside bereit Rückruf von Kind Fenster

var new_window = window.open('./NewWindow.aspx', '_blank'); 
$(new_window.document).ready(function() { 
    console.dir(this); 
}); 

Im obigen Beispiel ist dies eindeutig das Dokument des übergeordneten Fensters und nicht das „NewWindow“ Dokuments.

Antwort

2

Die 'ready' Ereignis wird in dem Dokument geschieht https://learn.jquery.com/using-jquery-core/document-ready/

wenn Sie this mit etwas anderes in Ihrem Event-Handler bind anderen Kontext zu können, müssen Sie außer Kraft setzen möchten:

var new_window = window.open('./NewWindow.aspx', '_blank'); 
$(new_window.document).ready(function() { 
    console.dir(this); 
}.bind(new_window)); 

Mehr Details https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind