简简单单右键菜单
2009-10-30 00:00:00 来源:WEB开发网有了容器就可以往里面添加菜单项了,我在代码中加了详细的注释了,应该可以很好的理解了
01.//添加菜单项
02. var addItems = function(gidx, items) {
03. var tmp = null;
04. for (var i = 0; i < items.length; i++) {
05. if (items[i].type == "splitLine") { //如果是分割线
06. //菜单分隔线
07. tmp = sTemplet.clone()[0];
08. } else {
09. items[i].gidx = gidx; //把group的标识赋给item上
10. if (items[i].type == "group") {
11. //菜单组
12. buildGroup.apply(gTemplet.clone()[0], [items[i]]); //每个菜单组都是独立的div哦,所以顶级一样调用生产组的方法
13. arguments.callee(items[i].alias, items[i].items);//递归生成菜单项
14. items[i].type = "arrow"; //如果是group生成箭头
15. tmp = buildItem.apply(iTemplet.clone()[0], [items[i]]);//生成菜单项的html
16. } else {
17. //菜单项
18. items[i].type = "ibody";
19. tmp = buildItem.apply(iTemplet.clone()[0], [items[i]]);//生成菜单项的html
20. $(tmp).click(function(e) { //如果菜单项那么注册click事件
21. if (!this.disable) {
22. if ($.isFunction(actions[this.idx])) {
23. actions[this.idx].call(this, target);
24. }
25. hideMenuPane();
26. }
27. return false;
28. });
29.
30. } //Endif
31. //把菜单项的右键事件屏蔽,同时注册hover的效果
32. $(tmp).bind("contextmenu", returnfalse).hover(overItem, outItem);
33. } //Endif
34. groups[gidx].appendChild(tmp); //把菜单项添加到group的中
35. tmp = items[i] = items[i].items = null;
36. } //Endfor
37. gidx = items = null;
38. };
更多精彩
赞助商链接