gpt4 book ai didi

javascript - 循环遍历 jQuery 插件选项

转载 作者:行者123 更新时间:2023-12-02 20:30:56 25 4
gpt4 key购买 nike

我不知道该怎么做,我以为我做得对,但显然不是。在第二个代码块中,您将看到 console.log() 调用以及我认为您将循环遍历所有item的方式,但这是行不通的。我该怎么做?另外,这是一项正在进行的工作,因此所有注释的代码,但这是主要部分!

提前致谢!

所以,我有这个用于我的 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);

最佳答案

您的 menuitems 对象只能有一个 item 属性,并且它会在您的声明中被覆盖。将 menuitems 改为数组:

$('p').contextMenu([
{
name:'Back',
action:function(){
alert('Back!');
},
icon:'http://cdn.iconfinder.net/data/icons/crystalproject/16x16/actions/agt_back.png'
},
{
name:'Forward',
action:function(){
alert('Forward!');
},
icon:'http://cdn.iconfinder.net/data/icons/crystalproject/16x16/actions/agt_forward.png'
}
]);

如果您认为需要为您所指的开发人员简化一点,也许只需首先将项目定义为变量即可。

var items = [ {name: 'Forward'}, {name: 'Back'} ];
$('p').contextMenu(items);

然后您就可以按照原来的方式访问这两个项目:

var len = menuitems.length;
for (var i = 0; i < len; i++;){
console.log(menuitems[i]);
}

顺便说一句,我已将您的 for in 循环更改为常规的 forfor in 循环效率确实很低,应该避免。 (我的替换循环也可以写得更有效,但是语法开始看起来很奇怪,你的评论似乎表明与你一起工作的开发人员可能会有点困惑(没有不尊重的意思))。

关于javascript - 循环遍历 jQuery 插件选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4150676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com