7***@qq.com
7***@qq.com
  • 发布:2016-08-04 18:58
  • 更新:2016-08-05 15:41
  • 阅读:4198

mui.view.js如何禁止滑动切换事件

分类:MUI

mui.view.js如何禁止滑动切换事件

        mui.init();  
        //初始化单页view  
        var viewApi = mui('#app').view({  
            defaultPage: '#setting'  
        });  
        var view = viewApi.view;  
        (function($) {  
            //处理view的后退与webview后退  
            var oldBack = $.back;  
            $.back = function() {  
                if (viewApi.canBack()) { //如果view可以后退,则执行view的后退  
                    viewApi.back();  
                } else { //执行webview后退  
                    oldBack();  
                }  
            };  
            //监听页面切换事件方案1,通过view元素监听所有页面切换事件,目前提供pageBeforeShow|pageShow|pageBeforeBack|pageBack四种事件(before事件为动画开始前触发)  
            //第一个参数为事件名称,第二个参数为事件回调,其中e.detail.page为当前页面的html对象  
            view.addEventListener('pageBeforeShow', function(e) {  
                //              console.log(e.detail.page.id + ' beforeShow');  
            });  
            view.addEventListener('pageShow', function(e) {  
                //              console.log(e.detail.page.id + ' show');  
            });  
            view.addEventListener('pageBeforeBack', function(e) {  
                //              console.log(e.detail.page.id + ' beforeBack');  
            });  
            view.addEventListener('pageBack', function(e) {  
                //              console.log(e.detail.page.id + ' back');  
            });  
        })(mui);
2016-08-04 18:58 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

将源码中initEvent方法里面的drag以及dragend事件去掉就可以了。

7***@qq.com

7***@qq.com (作者)

我是js非常菜鸟,按照您的方法注释掉了搞了半天,左右滑动效果还在。可以详细指教一下。

//这是mui.js  
        initEvent: function() {  
            var self = this;  
            if (self.backdrop) {  
                self.backdrop.addEventListener('tap', function(e) {  
                    self.close();  
                    e.detail.gesture.preventDefault();  
                });  
            }  
            if (this.classList.contains('mui-draggable')) {  
                this.wrapper.addEventListener($.EVENT_START, this); //临时处理  
                //this.wrapper.addEventListener('drag', this);  
                //this.wrapper.addEventListener('dragend', this);  
            }  
            this.wrapper.addEventListener('webkitTransitionEnd', this);  
        },
``````javascript  
//mui.view.js  
        initEvent: function() {  
            this.view.addEventListener('click', this);  
            this.view.addEventListener('tap', this);  
            //this.pages.addEventListener('drag', this);  
            //this.pages.addEventListener('dragend', this);  
            this.pages.addEventListener('webkitTransitionEnd', this);  
        },  
        handleEvent: function(event) {  
            switch (event.type) {  
                case 'click':  
                    this._click(event);  
                    break;  
                case 'tap':  
                    this._tap(event);  
                    break;  
                //case 'drag':  
                //  this._drag(event);  
                //  break;  
                //case 'dragend':  
                //  this._dragend(event);  
                //  break;  
                case 'webkitTransitionEnd':  
                    this._webkitTransitionEnd(event);  
                    break;  
            }  
        },

该问题目前已经被锁定, 无法添加新回复