jQuery внутри object. Проблема с this
Описание проблемы: для облегчения работы решил объеденить логически связанные переменные и функции в "объект", где для обращения к свойствам используется this. Но this в контексте метода jQuery обращается не к моему объекту, а к объекту jQuery (что и логично). Надо это подправить, так как в методе AJAX-запрос к backend, который возвращает html, а его надо закэшировать, чтобы постоянно не дергать скрипт.
Код:
[highlight="JavaScript"]
var Artist = {
album_tpl: "",
get_album_tpl: function() {
if( this.album_tpl != "" ) {
$("#artist_albums").html(this.album_tpl);
return;
}
$.ajax({
url: 'ajax_static.php',
dataType : "html",
type: "get",
data: "get_album_tpl",
complete: function(data,textStatus) {
this.album_tpl = data.responseText; // как здесь исправить, чтобы все таки сохранялось в мой "кэш"?
$("#artist_albums").html(this.album_tpl);
}
});
}
};
[/highlight]
var Artist = {
album_tpl: "",
get_album_tpl: function() {
if( this.album_tpl != "" ) {
$("#artist_albums").html(this.album_tpl);
return;
}
// ***************
var artThis = this;
// ***************
$.ajax({
url: 'ajax_static.php',
dataType : "html",
type: "get",
data: "get_album_tpl",
complete: function(data,textStatus) {
//******
artThis.album_tpl = data.responseText; // как здесь исправить, чтобы все таки сохранялось в мой "кэш"?
//******
// ********
$("#artist_albums").html(artThis.album_tpl);
// ********
}
});
}
};
[/highlight]
Премного благодарен) А то я тут уже куда только не копал))
С юзанием фрейворков народу вообще мозг выворачивает, перестают думать категориями простого JS. Наще нужно писать на нативном JS, чаще...