Bonjour,
J'ai un petit soucis en JS, j'ai créé deux scripts utilisant Prototype.js :
Code ajax.js : Sélectionner tout - Visualiser dans une fenêtre à part
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 menu.js : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager