Mam funkcję, która jest procedurą obsługi zdarzeń JQuery. Ponieważ jest to moduł obsługi zdarzeń JQuery, używa zmiennej this
, aby odnieść się do obiektu, w którym jest wywoływana (co jest normalne dla tej biblioteki).Jak mogę przedefiniować `this` w JavaScript?
Niestety, muszę ręcznie wywołać tę metodę w tym momencie. Jak sprawić, aby this
w wywołanej funkcji zachowywał się tak, jakby był wywoływany z JQuery?
Przykładowy kod:
function performAjaxRequest() {
//Function which builds AJAX request in terms of "this"
}
function buildForm(dialogOfForm) {
var inputItem;
dialogOfForm.html('...');
dialogOfForm.dialog('option', 'buttons', {
"Ok" : performAjaxRequest
});
inputItem = dialogOfForm.children(':not(label)');
//Redirect enter to submit the form
inputItem.keypress(function (e) {
if (e.which === 13) {
performAjaxRequest(); //Note that 'this' isn't the dialog box
//as performAjaxRequest expects here, it's
//the input element where the user pressed
//enter!
}
}
}
Załóżmy, że nie mam przydatnego odniesienia do faktycznego wydarzenia lub elementu, na którym wydarzenie zostanie wystrzelone. –
@Billy ... więc chcesz wywołać zdarzenie zmiennej na zmiennym obiekcie lub zestawie obiektów? Jeśli tak, jak wygląda ogólny kod? Co * robisz * wiesz w momencie, w którym chcesz wywołać to, co chcesz wywołać? –
Właśnie zaktualizowałem pytanie - daj mi znać, jeśli to pomoże. –