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
- 更新:2019-04-27 11:23
- 阅读:2902
自定义事件好像只能传参,不能执行目标页面改变DOM的语句或者函数
分类:MUI
9 个回复
chender - 与人为善
你把html贴上来,分分钟帮你解决
Danny - QQ125904483
用evalJS调用目标WebView的函数:
http://www.dcloud.io/docs/api/zh_cn/webview.shtml#plus.webview.WebviewObject.evalJS
问天玄铁 (作者)
我就想讨论自定义事件
2015-09-18 09:25
问天玄铁 (作者)
evalJS试了一下也不行
2015-09-18 09:43
全栈工程师
回复 问天玄铁:你的问题解决了吗?我和你一样的问题,跪求
2018-05-16 20:52
chender - 与人为善
你这个问题和自定义事件无关,事件都已经执行到目标界面了,剩下的和自定义事件就没关系了;如果某几句代码没被执行到,那百分之一万是你自己代码的问题;
x***@126.com
楼主解决这个问题了吗? 我也出现同样的问题
x***@126.com
解决了,Danny 的方法对我有效
1***@qq.com
请问解决了吗楼主
androidjdx
使用evalJS就好了
全栈工程师 - 精通mui、uniapp,承接相关项目外包,解决各种疑难问题。有任何问题可以随时联系,QQ:419761282
楼主解决了吗?我和你一样的问题 跪求
1***@qq.com
有人解决了么?