J'ai développé un petit widget javscript pour transformer certains blocs <ul>
imbriqués dans un navigateur de style Windows Explorer. Je l'ai appris récemment sur l'objet modèle littéral et a décidé de lui donner un coup, si l'organisation de mon code est quelque chose comme ceci:javascript objet modèle littéral avec plusieurs instances
var myExplorer = {
init : function(settings) {
myExplorer.config = {
$wrapper : $('#explorerCategories'),
$contentHolder : $j('#categoryContent'),
loadingImg : '<img src="../images/standard/misc/ajax_loader.gif" alt="loading" class="loading" />'
}
// provide for custom configuration via init()
if (settings && typeof(settings) == 'object') {
$.extend(myExplorer.config, settings);
}
// some more code...
},
createExpanderLink : function() {
// more code
},
anotherMethod : function() {
// etc
}
}
Puis dans ma page je configurer mon explorateur avec:
$j(function() {
myExplorer.init();
}
Tout cela fonctionne bien d'ailleurs. Le problème est quand je veux avoir plus d'un de ces widgets de style explorateur sur la même page. J'ai essayé de passer dans les différents paramètres:
$j(function() {
// first instance
myExplorer.init();
//second instance
var settings = {
$wrapper : $('#explorerCategories2'),
$contentHolder : $j('#categoryContent2')
}
myExplorer.init(settings);
}
Mais simplement les écrasent Vales de configuration pour la première instance qui rompt efficacement. Je commence à réaliser que le modèle littéral d'objet n'est pas le chemin à parcourir ici mais je ne suis pas sûr de ce qui est. Quelqu'un peut-il offrir des pointeurs?
Pardonnez mon ignorance, mais est-il vrai que lorsque vous utilisez ce modèle, je dois d'abord déclarer toutes les fonctions internes avant de les utiliser dans la fonction myExplorer environnante. Je suis juste un peu confus par votre code // init ici commentaire. – benb