Я не уверен, как это сделать, я думал, что делаю это правильно, но, видимо, нет. Во втором блоке кода вы увидите вызов console.log(), и, как думал , вы пропустили бы все item
, но это не работает. Как мне это сделать? Кроме того, это незавершенная работа, следовательно, весь прокомментированный код, но это основная часть!Loop через параметры плагина jQuery
Заранее благодарен!
Итак, у меня есть это для моего 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'
}
});
А вот мой реальный код JQuery плагин:
(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);
Это возвращает только один объект tho, и он возвращает только последний, "item: 'Forward'". Любые идеи почему? –
он означает 'console.log (menuitems [x]);' в блоке 'for (x in menuitems)'. –
Он возвращает только один элемент, потому что вы переписываете свойство 'item' вашего объекта menuitems. Если вы определяете элементы как массив, вам может быть проще получить то, что вы ищете, то есть '{items: [{name: 'Back'}, {name: 'Forward'}]}' – stevelove