问天玄铁
问天玄铁
  • 发布:2015-09-17 23:03
  • 更新:2019-04-27 11:23
  • 阅读:2932

自定义事件好像只能传参,不能执行目标页面改变DOM的语句或者函数

分类:MUI

mui的自定义事件有点问题,好像不能执行任何改变DOM的js。
首先我在mainpage中写
mui('div').on('tap','.btn',function(){
mui.fire(childpage,'dianji',{});
})
然后在子页面中写
window.addEventListener("dianji",function(){
mui.toast("haha");
document.getElementById("zuanshi").style.display="none";
},false)
结果发现在mainpage点击之后,子页面会mui.toast,但是子页面的那个元素并不会消失。
我以为在自定义监听中不能改变DOM,我就把改变DOM的语句单独封装成xiaoshi()函数
然后
window.addEventListener("dianji",function(){
mui.toast("haha");
xiaoshi();
},false)
仍然不行,还是只能有mui.toast
最后我想试下是不是mui模版就不能随便改DOM,我直接在子网页中加了一个button来执行xiaoshi()函数,结果没有问题,该元素消失了。
这时我想是不是必须本网页的元素的事件才能改变本网页的DOM,那么我就先保持button的事件不变,再在自定义监听事件中用trigger()虚拟button的点击事件
window.addEventListener("dianji",function(){
mui.toast("haha");
mui.trigger(btn,"tap");
},false)
结果仍然不行。这就彻底崩溃了。
如果这样的话,mui的自定义事件就只能传递参数和执行mui.toast()之类的,连函数或者语句都执行不了,这样的自定义事件就没有多大的用处和意义了。
不知道我说清楚了没有,还希望阁下试一下。

2015-09-17 23:03 负责人:无 分享
已邀请:
chender

chender - 与人为善

你把html贴上来,分分钟帮你解决

Danny

Danny - QQ125904483

用evalJS调用目标WebView的函数:

http://www.dcloud.io/docs/api/zh_cn/webview.shtml#plus.webview.WebviewObject.evalJS

chender

chender - 与人为善

你这个问题和自定义事件无关,事件都已经执行到目标界面了,剩下的和自定义事件就没关系了;如果某几句代码没被执行到,那百分之一万是你自己代码的问题;

x***@126.com

x***@126.com

楼主解决这个问题了吗? 我也出现同样的问题

x***@126.com

x***@126.com

解决了,Danny 的方法对我有效

1***@qq.com

1***@qq.com

请问解决了吗楼主

androidjdx

androidjdx

使用evalJS就好了

全栈工程师

全栈工程师 - 精通mui、uniapp,承接相关项目外包,解决各种疑难问题。有任何问题可以随时联系,QQ:419761282

楼主解决了吗?我和你一样的问题 跪求

1***@qq.com

1***@qq.com

有人解决了么?

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