jQuery + jQuery Mobile =两次调用处理程序?

时间:2012-12-04 11:26:46

标签: jquery

我在我的网络应用程序中插入了jQuery(1.8.2)和jQuery mobile(1.1.1)。 现在,如果我创建这个简单的处理程序:

$('.pulsante-menu').click(function () {
    console.log("ooo");
});

然后点击链接,我看到两次控制台消息!我该如何解决?

This是我的代码!

3 个答案:

答案 0 :(得分:3)

将您的脚本移到<head>元素或单独的JavaScript文件中。或者尝试使用pageinit。这样做的原因解释为in this post on jQuery.com

答案 1 :(得分:0)

您在小提琴中定义了两次处理程序,一次在JS部分,一次在HTML部分的脚本标记中。删除其中一个它应该工作。

检查我更新的fiddle

HTML:

<head>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
  <script src="http://jquerymobile.com/demos/1.1.1/js/jquery.mobile-1.1.1.js" type="text/javascript"></script>
</head>
<body>
  <a href="#" class="prova">Link</a>
</body>

JavaScript:

$('.prova').click(function () {
    console.log("ooo");
    return false; // stopPropagation and preventDefault
});

答案 2 :(得分:0)

你可以尝试这样的事情。

$('.pulsante-menu').click(function (e) {
    e.stopPropagation();
    console.log("ooo");
});