jQuery(function($){ //创建DOM var quickHTML = document.querySelector("div.quick_link_mian"), quickShell = $(document.createElement('div')).html(quickHTML).addClass('quick_links_wrap'), quickLinks = quickShell.find('.quick_links'); quickPanel = quickLinks.next(); quickShell.appendTo('.mui-mbar-tabs'); //具体数据操作 var quickPopXHR, loadingTmpl = '
Loading...
', popTmpl = '

<%=title%>

<%=content%>
', historyListTmpl = '', newMsgTmpl = '', quickPop = quickShell.find('#quick_links_pop'), quickDataFns = { //购物信息 cart_list: { title: '购物车', content: null, init:$.noop }, mpbtn_total:{ title: '我的资产', content: null, init:$.noop }, mpbtn_history:{ title: '我的足迹', content:'', init: $.noop }, mpbtn_collection:{ title: '我的收藏', content: null , init: $.noop }, mpbtn_order:{ title: '我的订单', content: null, init: $.noop } }; //showQuickPop var prevPopType, prevTrigger, doc = $(document), popDisplayed = false, //初始化和点击收起 hideQuickPop = function(){ if(prevTrigger){ prevTrigger.removeClass('current'); } popDisplayed = false; prevPopType = ''; quickShell.css({width:40}); }, //点击展开 showQuickPop = function(type){ if(quickPopXHR && quickPopXHR.abort){ quickPopXHR.abort(); } if(type !== prevPopType){ var fn = quickDataFns[type]; quickShell.css({width:320}); function return_content(result) { fn.content=result.content quickPop.html(ds.tmpl(popTmpl, fn)); fn.init.call(this, fn); } Ajax.call('get_ajax_content.php?act=get_content', 'data_type=' + type, return_content, 'POST', 'JSON'); } doc.unbind('click.quick_links').one('click.quick_links', hideQuickPop); quickPop[0].className = 'quick_links_pop quick_' + type; popDisplayed = true; prevPopType = type; quickPop.show(); /*var popPanel = quickPop.find('.pop_panel'), ibarTitle = quickPop.find('.ibar_plugin_title'); popPanel.css({'height':view.height()-ibarTitle.height()}); view.resize(function(){ popPanel.css({'height':view.height()-ibarTitle.height()}); });*/ }; quickShell.bind('click.quick_links', function(e){ e.stopPropagation(); }); //关闭按钮 quickPop.delegate('a.ibar_closebtn','click',function(){ if(prevTrigger){ prevTrigger.removeClass('current'); } popDisplayed = false; prevPopType=''; quickShell.css({width:40}); }); //通用事件处理 var view = $(window), quickLinkCollapsed = !!ds.getCookie('ql_collapse'), getHandlerType = function(className){ return className.replace(/current/g, '').replace(/\s+/, ''); }, showPopFn = function(){ var type = getHandlerType(this.className); if(popDisplayed && type === prevPopType){ return hideQuickPop(); } showQuickPop(this.className); if(prevTrigger){ prevTrigger.removeClass('current'); } prevTrigger = $(this).addClass('current'); }, quickHandlers = { //购物车,最近浏览,商品咨询 my_qlinks: showPopFn, cart_list: showPopFn, mpbtn_total: showPopFn, leave_message: showPopFn, mpbtn_history:showPopFn, mpbtn_order:showPopFn, mpbtn_collection:showPopFn, //返回顶部 return_top: function(){ ds.scrollTo(0, 0); hideReturnTop(); } }; quickShell.delegate('a', 'click', function(e){ var type = getHandlerType(this.className); if(type && quickHandlers[type]){ quickHandlers[type].call(this); e.preventDefault(); } }); //Return top var scrollTimer, resizeTimer, minWidth = 1350; function resizeHandler(){ clearTimeout(scrollTimer); scrollTimer = setTimeout(checkScroll, 160); } function checkResize(){ quickShell[view.width() > 1340 ? 'removeClass' : 'addClass']('quick_links_dockright'); } function scrollHandler(){ clearTimeout(resizeTimer); resizeTimer = setTimeout(checkResize, 160); } function checkScroll(){ view.scrollTop()>100 ? showReturnTop() : hideReturnTop(); } function showReturnTop(){ quickPanel.addClass('quick_links_allow_gotop'); } function hideReturnTop(){ quickPanel.removeClass('quick_links_allow_gotop'); } view.bind('scroll.go_top', resizeHandler).bind('resize.quick_links', scrollHandler); quickLinkCollapsed && quickShell.addClass('quick_links_min'); resizeHandler(); scrollHandler(); });