Ajax + Classe [Javascript] - HTML/CSS - Programmation
MarshPosté le 04-07-2014 à 20:58:28
Salut, Dans un fichier .js je crée une classe contenant plusieurs méthodes dont: changeDir et analyseResponse
Le méthode changeDir fait une requête ajax dont la réponse est traitée dans la méthode analyseResponse. Le problème c'est que mes variables this.objID, this.api et leur amies ne sont pas définies dans la méthode analyseResponse.
Je n'ai aucune idée de comment résoudre le problème... un petit coup de main svp ?
this.analyseResponse = function (response, textStatus, jqXHR){ var html = '<div class="menuItem" onclick=\'changeDir(".." )\'>Parent Directory</div>'; var itemList = response.split("@@" ); itemList = itemList.sort(function(a,b){ a = a.toLowerCase(); b = b.toLowerCase();
Marsh Posté le 04-07-2014 à 20:58:28
Salut,
Dans un fichier .js je crée une classe contenant plusieurs méthodes dont:
changeDir et analyseResponse
Le méthode changeDir fait une requête ajax dont la réponse est traitée dans la méthode analyseResponse. Le problème c'est que mes variables this.objID, this.api et leur amies ne sont pas définies dans la méthode analyseResponse.
Je n'ai aucune idée de comment résoudre le problème... un petit coup de main svp ?
***** Début code source *****
function treeManager(objID, initialPath) {
this.objID = objID;
this.curDir = "";
this.api = undefined;
this.initPath = initialPath;
this.request;
this.analyseResponse = function (response, textStatus, jqXHR){
var html = '<div class="menuItem" onclick=\'changeDir(".." )\'>Parent Directory</div>';
var itemList = response.split("@@" );
itemList = itemList.sort(function(a,b){
a = a.toLowerCase();
b = b.toLowerCase();
if( a > b )
return 1;
if( a < b )
return -1;
return 0;
});
for(var idx in itemList) {
if( itemList[idx] != "" )
html += '<div class="menuItem" onclick=\'changeDir("' + itemList[idx] + '" )\'>' + itemList[idx] + '</div>';
}
if( this.api != undefined ) {
this.api.destroy();
}
$('#' + this.objID).html(html);
this.api = $('#' + this.objID).jScrollPane().data('jsp');
}
this.changeDir = function(path) {
this.request = $.ajax({
url: "/cgi-bin/test.pl",
type: "post",
data: "path="+this.curDir+"/"+path,
success: this.analyseResponse,
});
if( this.curDir != "" ) {
this.curDir += "/";
}
this.curDir += path;
console.log(this.curDir);
}
this.init = function() {
$('#' + this.objID).css('top', $('#header').height());
this.changeDir(this.initPath);
}
}
***** Fin code source *****