当前位置:   article > 正文

Jquery 菜单插件之 Superfish jQuery菜单_jquery superfish

jquery superfish

大家如果想了解"Superfish jQuery菜单"插件,可以查看我发布的一篇“关于JQuery 菜单插件”,这里已经告诉我们该jQuery菜单插件的相关优势和下载地址,在下载中包含基础的Demo,初始者可以依次入门。


接下来,我们进入我们开发重点:

第一步:首先,查看我们基于Superfish jQuery菜单插件实现的效果。


第二步:查看静态HTML源代码,是如何实现该功能的(我们这里只是分析Superfish jQuery菜单插件HTML构成样式)。

<ul class="sf-menu" id="example" style="line-height:10px;margin-left:8px;">
<li class="current" >
<a href="#">CEO办公室</a>
<ul>
<li>
<a href="#">财务部1</a>
<ul>
<li>
<a href="#">财务部门2</a>
<ul>
<li><a href="#">测试部门</a></li>

</ul>
</li>

       </ul>
</li>
<li>
<a href="#">测试部门一</a>

</li>
<li>
<a href="#">测试部门2</a>

</li>
<li>
<a href="#">测试部门五</a>

</li>

</ul>
</li>
</ul>

通过上面静态HTML数据信息,我们可以很容易看出:ul标签和li标签,构成我们今天学习的菜单控件(Superfish jQuery),如何引用Superfish jQuery菜单插件的相关样式和js,请朋友们参考自己下载的Demo案例。

  1. 第三步:要实现第三方jquery 菜单插件与自己开发的项目整合起来,重点是要查看后台是如何返回数据,前台又是如何处理?下面这幅截图是我负责的系统后台返回数据样式(已经经过格式化)。[
  2. {
  3. "id": "14efbeaab57308f49ce1c1a4244b4009",
  4. "name": "华星光电",
  5. "subNode": [
  6. {
  7. "id": "14efbedf53d206203ed19ea44b098e83",
  8. "name": "财务部1",
  9. "subNode": [
  10. {
  11. "id": "14efbee399cdba581fa197744ab9f984",
  12. "name": "财务部2",
  13. "subNode": [
  14. {
  15. "id": "14efbee6bf2c9b3b913a21f4cf1a03e4",
  16. "name": "财务部3",
  17. "subNode": [
  18. {
  19. "id": "14efbee9311ce09a33a824e4691aee92",
  20. "name": "财务部4",
  21. "subNode": []
  22. }
  23. ]
  24. }
  25. ]
  26. },
  27. {
  28. "id": "14f63b0288a3237a8e5820944d9bf326",
  29. "name": "测试部门",
  30. "subNode": []
  31. }
  32. ]
  33. },
  34. {
  35. "id": "14f63b3954c4f7d53c992c54edaaa1da",
  36. "name": "测试部门一",
  37. "subNode": []
  38. },
  39. {
  40. "id": "14f63b4eb78b5faf65a4df74996894ca",
  41. "name": "测试部门2",
  42. "subNode": []
  43. },
  44. {
  45. "id": "14f63b51db6b5f39ffa3df249939cf64",
  46. "name": "测试部门五",
  47. "subNode": []
  48. }
  49. ]
  50. },
  51. {
  52. "id": "14efbee6bf2c9b3b913a21f4cf1a03e4 ",
  53. "name": "财务部3",
  54. "subNode": [
  55. {
  56. "id": "14efbee9311ce09a33a824e4691aee92",
  57. "name": "财务部4",
  58. "subNode": []
  59. }
  60. ]
  61. }
  62. ]

第四步:我们已经拿到了后台数据,接下来就是本篇文章的学习重点:(javascript 函数迭代、javascript JSONArray 数据格式解析和javascript 拼接HTML)

函数迭代:

//获取部门相关信息
function getDepart(){
var url="${kmsContextPath}kms/multidoc/kms_multidoc_knowledge/kmsMultidocKnowledge.do?method=homeSearchDept";
$.get(url, function(data,state){
var jsonarray=eval(data);
for(var i=0;i<jsonarray.length;i++){
var jsonObject=jsonarray[i];
 
var html="";
html+="<ul class='sf-menu' style='line-height:10px;margin-left:8px;' id='"+jsonObject.id+"'>";
html+="<li class='current'>";
html+="<a href='#' οnclick='searchCase(\"org\",\""+jsonObject.id+"\",\""+jsonObject.name+"\")'>"+jsonObject.name+"</a>";

//判断当前部门是否存在子节点
var subNode=jsonObject.subNode;
if(subNode.length!=0){
html+="<ul>";
var content=getSubDepart(subNode);
html+=content;
html+="</ul>";
}
html+="</li>";
html+="</ul>";

$("#department").append(html);
$("#"+jsonObject.id+"").superfish({});
 

}  
});  
}
//部门数据迭代
function getSubDepart(jsonObject){
var content=""
var jsonArray=eval(jsonObject);
for(var i=0;i<jsonArray.length;i++){
var json=jsonArray[i];

content+="<li>";
content+="<a href='#' οnclick='searchCase(\"org\",\""+json.id+"\",\""+json.name+"\")'>"+json.name+"</a>";
//判断是否存在子节点
var subDepart=json.subNode;
if(subDepart.length!=0){
content+="<ul>";
var html= getSubDepart(subDepart);
content+=html;
content+="</ul>";
}
content+="</li>";
}
return content;
}

 在页面初始化时,调用geDepart()函数即可。 


今天文章就透露到这里,今天这篇文章讲解:第三方JQuery插件(Superfish jQuery)和javascript函数迭代。

其他的(1)、JSONArray数据解析、(2)javascript拼接HTML都只是简单讲解,如果有兴趣的码农,可以自己百度或Google,实在不行就看我接下来准备发表的文章。



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/834933
推荐阅读
相关标签
  

闽ICP备14008679号