Javascript 如何防止来自';失去';范围
我正在使用jQuery并进行一些原型设计。 在我的应用程序中,我使用jQuery.ajax()从服务器获取一些HTML,然后需要将其插入页面中的DIV中 以下是我的代码的相关部分:Javascript 如何防止来自';失去';范围,javascript,jquery,Javascript,Jquery,我正在使用jQuery并进行一些原型设计。 在我的应用程序中,我使用jQuery.ajax()从服务器获取一些HTML,然后需要将其插入页面中的DIV中 以下是我的代码的相关部分: SONGS_UPLOADER.prototype.FileSelectHandler = function(e) { this.FileDragHover(e); var files = e.target.files || e.dataTransfer.files; var target = this.target
SONGS_UPLOADER.prototype.FileSelectHandler = function(e) {
this.FileDragHover(e);
var files = e.target.files || e.dataTransfer.files;
var target = this.target;
var artist_id = this.artist_id;
var album_id = this.album_id;
var onComplete = this.onSongUploaded;
for ($x = 0; $x < files.length; $x ++) {
var file = files[$x];
jQuery.ajax({
type: 'post',
dataType : 'html',
url: ajaxurl,
data: {action: 'add_new_song', artist_id: artist_id, album_id: album_id, title:file.name},
success: function(DATA)
{
onComplete(DATA);
}
});
}
}
SONGS_UPLOADER.prototype.files;
SONGS_UPLOADER.prototype.onComplete;
SONGS_UPLOADER.prototype.album_id;
SONGS_UPLOADER.prototype.artist_id;
SONGS_UPLOADER.prototype.target;
SONGS_UPLOADER.prototype.onSongUploaded = function(DATA){
var song = jQuery(DATA);
//console.log(target.find('.songs_list'));
this.target.find('.songs_list').append(song);
new SONGS_MANAGER(song, file);
}
SONGS\u UPLOADER.prototype.FileSelectHandler=function(e){
本条第(e)款;
var files=e.target.files | | e.dataTransfer.files;
var target=this.target;
var artist_id=this.artist_id;
var album_id=this.album_id;
var onComplete=this.onsongUpload;
对于($x=0;$x
在AJAX complete函数中,我尝试了以下操作:
onComplete(DATA)-这将调用OnSongUpload函数,但OnSongUpload中的“this.target”未定义
this.onsongUpload和onsongUpload-出现错误,说明onsongUpload不存在
proxy(this.onsongUpload(和)onsongUpload,this)-收到一个错误,说明onsongUpload不存在
我知道在使用jQuery.ajax()函数时,它可能与作用域有关,但我就是不知道如何解决它
如何调整代码,以便调用OnSongUploader函数并尊重SONGS\u UPLOADER对象上的“this”关键字?设置ajax的选项上下文:
context:this,
您指的是上下文,而不是范围!A.沃尔夫-那很有效,谢谢。谢谢你的更正。