Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止来自';失去';范围_Javascript_Jquery - Fatal编程技术网

Javascript 如何防止来自';失去';范围

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

我正在使用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;
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.沃尔夫-那很有效,谢谢。谢谢你的更正。