为什么使用jquerymobile的网页,绑定的click事件会被触发两次

 我来答
福喜900
推荐于2016-04-13 · TA获得超过6.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:1亿
展开全部

首先,我说解决办法,只需要把你所有的script内容放到head里即可


<!DocType html>

<html>

<head>

<title>jquerymobile click triggered twice ?</title>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1"> 

<script src="htt p:/ code.jquer y.c om/jquery-1.8.2.mi n.js"></script>

<script src="htt p:/ /code.jquer y.co m/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>

<script>

var i = 0;

$(document).bind('pageinit', function() {

    $('#test').bind('click', function(e) {

        alert('clicked: ' + i);

        i ++;

    });

});

</script>

</head>


<body>

<h1>奇怪了?!!</h1>

<p>Some content here.</p>

<p><img id="test" src="htt p:/ /ww w .5 1rom s.co m/images/crazy.jpg" alt="Click me"></p>

</body>

</html>

然后,我说说思路,这个问题真的很奇葩,一般人还真不知道为什么会这样。但是我在调试的时候发现,你的js居然加载了两遍!

这就是为什么它会执行两次,因为pageinit被调用了两遍。但是为什么js会加载两次呢?你看看最后的页面结构

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式