Je ne suis pas sûr de savoir comment faire cela, je pensais que je le faisais bien, mais apparemment pas. Dans le 2ème bloc de code, vous verrez un appel de console.log() et la façon dont pensé vous traverserait tous les item
s mais cela ne fonctionne pas. Comment ferais-je cela? Aussi, c'est un travail en cours donc tout le code commenté, mais c'est la partie principale!Boucle à travers les options du plugin jQuery
Merci d'avance!
Donc, j'ai pour mon appel plugin jQuery:
$('p').contextMenu({
item:{
name:'Back',
action:function(){
alert('Back!');
},
icon:'http://cdn.iconfinder.net/data/icons/crystalproject/16x16/actions/agt_back.png'
},
item:{
name:'Forward',
action:function(){
alert('Forward!');
},
icon:'http://cdn.iconfinder.net/data/icons/crystalproject/16x16/actions/agt_forward.png'
}
});
Et voici mon code plugin jQuery réelle:
(function($){
$.fn.extend({
//plugin name - animatemenu
contextMenu: function(menuitems,options) {
if(!options){options == null;}
//Settings list and the default values
var defaults = {
};
var options = $.extend(defaults, options);
return this.each(function() {
var o =options;
//Assign current element to variable, in this case is UL element
var $obj = $(this);
$obj.mousedown(function(event) {
switch (event.which) {
case 1: //Left
//alert('Left mouse button pressed');
break;
case 2: //Middle
//alert('Middle mouse button pressed');
break;
case 3: //Right
//menuitems.item.action();
for(x in menuitems){
console.log(menuitems.item[x])
}
break;
default: //Unknown
}
});
});
}
});
})(jQuery);
Cela retourne seulement 1 objet tho, et il retourne seulement le dernier, "item: 'Forward'". Des idées pourquoi? –
il signifie 'console.log (menuitems [x]);' dans le bloc 'for (x in menuitems)'. –
Il renvoie uniquement un élément car vous remplacez la propriété 'item' de votre objet menuitems. Si vous définissez des éléments sous la forme d'un tableau, vous trouverez peut-être plus facile d'obtenir ce que vous recherchez, par exemple '{items: [{name: 'Back'}, {name: 'Forward'}]}' ' – stevelove