MenuTree.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /**
  2. * 左侧目录
  3. */
  4. function MenuTree(){};
  5. MenuTree.prototype = {
  6. construct: MenuTree,
  7. init: function(){
  8. var self = this;
  9. //注册选项点击事件
  10. $('.menuTree').delegate('.menuTreeItem','click',function(){
  11. var sdzlid = $(this).attr('data-key');
  12. eventProxy.emit('收单资料选中',{
  13. sdzlid: sdzlid
  14. });
  15. })
  16. $('.menuTree').delegate('.menuTreeItem','mouseenter',function(){
  17. $(this).addClass('hover');
  18. })
  19. $('.menuTree').delegate('.menuTreeItem','mouseleave',function(){
  20. $(this).removeClass('hover');
  21. })
  22. eventProxy.on('收单资料选中',function(data){
  23. var sdzlid = data['sdzlid'];
  24. self.selectById(sdzlid);
  25. });
  26. //动态调整高度
  27. $('ul.menuTreeList').height($('div.container').height()*0.4);
  28. },
  29. /**
  30. * 读取列表数据
  31. * @param itemList
  32. */
  33. load: function(itemList){
  34. this._itemList = itemList;
  35. },
  36. /**
  37. * 渲染界面
  38. */
  39. flush: function(){
  40. $('.menuTreeList').empty();
  41. var itemList = this._itemList;
  42. for(var i=0;i<itemList.length;i++){
  43. var item = itemList[i];
  44. var key = item['key'];
  45. var value = item['value'];
  46. var element = '<li data-key="'+key+'" class="menuTreeItem"><span>'+value+'</span>'+'</li>';
  47. $('.menuTreeList').append(element);
  48. }
  49. },
  50. /**
  51. * 选择子项(通过ID)
  52. * @param id
  53. */
  54. selectById: function(id){
  55. var itemList = this._itemList;
  56. for(var i=0;i<itemList.length;i++){
  57. var item = itemList[i];
  58. var key = item['key'];
  59. if(id == key){
  60. //dom处理
  61. $('.menuTreeItem[data-key="'+id+'"]').addClass('selected').siblings().removeClass('selected');
  62. this._curItem = item;
  63. return;
  64. }
  65. }
  66. },
  67. /**
  68. * 获取当前选中的项目
  69. */
  70. getSelectedItem: function(){
  71. return this._curItem;
  72. }
  73. };
  74. var menuTree = new MenuTree();