为什么我用创建元素的方式进行事件绑定,点击的时候触发两次弹框,用直接赋值正常
var content = document.getElementById("content");
for(var i=0;i<2;i++)
{
var li = document.createElement("li");
li.innerHTML="<li>dianji"+i+"</li>";
content.appendChild(li);
}
//content.innerHTML="<li>dianji</li><li>dianji2</li>"
mui('#content').on('tap','li',function(){
mui.alert('aaa');
})
3 个回复
DCloud_UNI_CHB
你的错误在于如下两行js代码:
这样你的DOM会变成:
innerHTML中不需要<li>
DCloud_UNI_CHB
事件触发两次的常见原因:
1、重复引用了mui.min.js
2、引用了第三方框架,比如zepto.js、avalon.js等,这些第三方框架中也有tap事件,同时也支持on事件绑定,因此会重复触发。
如果你的问题不属于如上两种情况,请上传完整测试工程,我们帮忙验证。
G_jia (作者)
怎么上传?我给你粘下我所有的代码,正确配置下js路径就行
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<script src="js/mui.min.js"></script>
<link href="css/mui.min.css" rel="stylesheet"/>
<script type="text/javascript" charset="utf-8">
mui.init();
mui.plusReady(function(){
var content = document.getElementById("content");
for(var i=0;i<2;i++)
{
var li = document.createElement("li");
li.innerHTML="<li>dianji"+i+"</li>";
content.appendChild(li);
}
//content.innerHTML="<li>dianji</li><li>dianji2</li>"
mui('#content').on('tap','li',function(){
mui.alert('aaa');
})
})
</script>
</head>
<body>
<div class="mui-content">
<ul id='content'>
</body>
</html>
2015-09-18 13:18
flax - 一个作家曾经说过:“一个失落的灵魂能很快杀死你,远比细菌快的多.”
楼上正解!