/** * Created by jfengjiang on 2015/9/11. */ $(function () { // page stack var stack = []; var $container = $('.js_container'); $container.on('click', '.js_cell[data-id]', function () { var id = $(this).data('id'); go(id); }); // location.hash = '#hash1' 和点击后退都会触发`hashchange`,这个demo页面只关心后退 $(window).on('hashchange', function (e) { if (/#.+/gi.test(e.newURL)) { return; } var $top = stack.pop(); if (!$top) { return; } $top.addClass('slideOut').on('animationend', function () { $top.remove(); }).on('webkitAnimationEnd', function () { $top.remove(); }); }); function go(id){ var $tpl = $($('#tpl_' + id).html()).addClass('slideIn').addClass(id); $container.append($tpl); stack.push($tpl); // why not use `history.pushState`, https://github.com/weui/weui/issues/26 //history.pushState({id: id}, '', '#' + id); location.hash = '#' + id; $($tpl).on('webkitAnimationEnd', function (){ $(this).removeClass('slideIn'); }).on('animationend', function (){ $(this).removeClass('slideIn'); }); // tooltips if (id == 'cell') { $('.js_tooltips').show(); setTimeout(function (){ $('.js_tooltips').hide(); }, 3000); } } if (/#.*/gi.test(location.href)) { go(location.hash.slice(1)); } // toast $container.on('click', '#showToast', function () { $('#toast').show(); setTimeout(function () { $('#toast').hide(); }, 5000); }); $container.on('click', '#showLoadingToast', function () { $('#loadingToast').show(); setTimeout(function () { $('#loadingToast').hide(); }, 5000); }); $container.on('click', '#showDialog1', function () { $('#dialog1').show(); $('#dialog1').find('.weui_btn_dialog').on('click', function () { $('#dialog1').hide(); }); }); $container.on('click', '#showDialog2', function () { $('#dialog2').show(); $('#dialog2').find('.weui_btn_dialog').on('click', function () { $('#dialog2').hide(); }); }); function hideActionSheet(weuiActionsheet, mask) { weuiActionsheet.removeClass('weui_actionsheet_toggle'); mask.removeClass('weui_fade_toggle'); weuiActionsheet.on('transitionend', function () { mask.hide(); }).on('webkitTransitionEnd', function () { mask.hide(); }) } $container.on('click','#showActionSheet', function () { var mask = $('#mask'); var weuiActionsheet = $('#weui_actionsheet'); weuiActionsheet.addClass('weui_actionsheet_toggle'); mask.show().addClass('weui_fade_toggle').click(function () { hideActionSheet(weuiActionsheet, mask); }); $('#actionsheet_cancel').click(function () { hideActionSheet(weuiActionsheet, mask); }); weuiActionsheet.unbind('transitionend').unbind('webkitTransitionEnd'); }); });