Type Error : _items has no properties
Bonjour,
J'ai un petit soucis en JS, j'ai créé deux scripts utilisant Prototype.js :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
var Request = {
send: function(url, callback) {
new Ajax.Request(url, {
method: 'post',
asynchronous: 'true',
onSuccess: function(request) {
callback(request.responseXML);
},
onFailure: function(request) {
alert('Error ' + request.status + ' -- ' + resquest.statusText);
},
onException: function(request, exception) {
alert('Exception :' + exception);
}
});
}
} |
et
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
Menu = Class.create({
XML_FILE: "xml/menu.xml",
_items: [],
initialize: function() {
this._items = new Array();
},
load: function() {
new Request.send(this.XML_FILE, this._loadCallBack);
},
_loadCallBack: function(responseXML) {
var items = responseXML.getElementsByTagName("item");
for (var i = 0; i < items.length; i++) {
var item = new Menu.Item(items[i]);
this._items.push(item);
}
alert(this.toHtml());
},
toHtml: function() {
var html = "<ul>";
for (var i = 0; i < _items.length; i++) {
html += _items[i].toHtml();
}
html += "</ul>";
return html;
}
});
Menu.Item = Class.create({
_title: null,
initialize: function(itemXMLElement) {
this._title = itemXMLElement.getAttribute("title");
},
getTitle: function() {
return this._title;
},
toHtml: function() {
return "<li><a href=\"#\">" + this._title + "</a></li>";
}
}); |
Lorsque j'execute new Menu().load() j'obtient l'exception "Type Error : _items has no properties".
Il semblerai que this._items dans la fonction _loadCallBlack ne soit pas définie.
Alors que la fonction est une fonction interne de la classe Menu.
Comment resourdre le problème ?
Merci d'avance.
Gronono