info.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. $(function () {
  2. var info = {
  3. $sidebar: $('.sidebar'),
  4. $sidebarMain: $('.sidebar-main'),
  5. $sidebarBody: $('.sidebar-body'),
  6. events: [ 'click', 'touchstart', 'touchend', 'touchmove'],
  7. init:function () {
  8. this.setSidebarEvent();
  9. this.setSidebarMainEvent();
  10. this.setSbItemEvent();
  11. },
  12. setSidebarEvent: function () {
  13. var me = this;
  14. me.bindEvent( me.$sidebar, me.events[0], function () {
  15. me.hidePop();
  16. });
  17. },
  18. setSidebarMainEvent: function () {
  19. var me = this;
  20. me.bindEvent( me.$sidebarMain, me.events[0], function (e) {
  21. if (!!$(e.target).hasClass('sidebar-body') || !!$(e.target).hasClass('sidebar-main')) {
  22. me.hidePop();
  23. }
  24. });
  25. },
  26. setSbItemEvent: function () {
  27. var me = this;
  28. me.$sidebarBody.on('click','li.sb-item a',function(){
  29. var $this = $(this)
  30. if ($this.parent().hasClass('j-hascode')) {
  31. $('li.sb-item a').removeClass('active');
  32. $this.addClass('active');
  33. me.hidePop();
  34. }else{
  35. var sbIList = $this.siblings('.sb-i-list');
  36. var dis = sbIList.css('display');
  37. if (dis == 'none') {
  38. me.hideDownSideBar();
  39. sbIList.slideDown();
  40. $this.find('.i-d').addClass('active');
  41. }else {
  42. me.hideDownSideBar();
  43. }
  44. }
  45. })
  46. },
  47. hidePop: function () {
  48. var me = this;
  49. me.$sidebarMain.hasClass('active') ? me.$sidebarMain.removeClass('active') : me.$sidebarMain.addClass('active');
  50. me.$sidebarBody.hasClass('active') ? me.$sidebarBody.removeClass('active') : me.$sidebarBody.addClass('active');
  51. },
  52. hideDownSideBar: function () {
  53. $('.sb-i-list').slideUp();
  54. $('.i-d').removeClass('active');
  55. },
  56. bindEvent: function ( d, ev, cb, nd) {
  57. cb && d.on( ev, nd, cb);
  58. }
  59. };
  60. info.init();
  61. });