MUI 事件管理

手势事件

分类参数描述
点击tap单击屏幕
doubletap双击屏幕
长按longtap长按屏幕
hold按住屏幕
release离开屏幕
滑动swipeleft向左滑动
swiperight向右滑动
swipeup向上滑动
swipedown向下滑动
拖动dragstart开始拖动
drag拖动中
dragend拖动结束

手势事件配置 

mui.init({
  gestureConfig:{
   tap: true, //默认为true
   doubletap: true, //默认为false
   longtap: true, //默认为false
   swipe: true, //默认为true
   drag: true, //默认为true
   hold:false,//默认为false,不监听
   release:false//默认为false,不监听
  }
});

 注意:dragstart、drag、dragend共用drag开关,swipeleft、swiperight、swipeup、swipedown共用swipe开关。

 

事件绑定

单个元素上的事件监听,直接使用addEventListener()即可。

var tabButton = document.getElementById("orderType");
tabButton.addEventListener('tap', function(event) {
     console.log("你正在单击屏幕");
});

若多个元素执行相同逻辑, 也可以使用.on()方法实现批量元素的事件绑定。 

.on( event , selector , handler )

event

Type: String

需监听的事件名称,例如:'tap'

selector

Type: String

选择器

handler

Type: FunctionEvent event )

事件触发时的回调函数,通过回调中的event参数可以获得事件详情

示例

mui('body').on('tap','.searchBtn',function(){
  //获取id
  var id = this.getAttribute("id");
  //传值给详情页面,通知加载新数据
  mui.fire(detail,'getDetail',{id:id});
  //打开详情页
  mui.openWindow({
    id:'detail',
    url:'detail.html'
  });
}) 

 

事件触发

使用mui.trigger()方法可以动态触发特定DOM元素上的事件。

.trigger( element , event, data )

element

Type: Element

触发事件的DOM元素

event

Type: String

事件名字,例如:'tap'、'swipeleft'

data

Type: Object

需要传递给事件的业务参数

示例

自动触发按钮的点击事件:

var btn = document.getElementById("submit");
//监听点击事件
btn.addEventListener("tap",function () {
  console.log("tap event trigger");
});
//触发submit按钮的点击事件
mui.trigger(btn,'tap');

 

自定义事件

在App开发中,经常会遇到页面间传值的需求,通过自定义事件,用户可以轻松实现多webview间数据传递。

添加自定义事件监听操作和标准js事件监听类似,可直接通过window对象添加。

window.addEventListener('newsId',function(event){
  //'customEvent'为事件名
  //通过event.detail可获得传递过来的参数内容
  var id = event.detail.id;
});

触发自定义事件

通过mui.fire()方法可触发目标窗口的自定义事件:

.fire( target , event , data )

target

Type: WebviewObject

需传值的目标webview

event

Type: String

自定义事件名称

data

Type: JSON

json格式的数据

注意:目标webview必须触发loaded事件后才能使用自定义事件。

示例

// 父页面
var detailPage = plus.webview.getWebviewById('detail.html');
// 如果父页面有传递页面ID过来,也可以用更灵活的写法
var detailPage = plus.webview.getWebviewById(plus.webview.currentWebview().parentId);
 //触发详情页面的newsId事件
  mui.fire(detailPage,'newsId',{
    id:id
  });

// 子页面
window.addEventListener('newsId',function(event){
  var id = event.detail.id;
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mephisto180502

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值