1

我有一个 Phonegap 应用程序,使用 jQuery 和 jQuery Mobile。

在某些页面中,我将一个函数绑定到一个点击事件,但该函数在页面加载时触发。在调试了一下(使用arguments.callee.caller.caller.toString())之后,我发现,由于某种疯狂的原因,当页面加载时,该按钮中会触发一个单击事件。

当我更改页脚的类时,问题已经消失(也是我的样式),然后我更改了 CSS 文件中的类引用以匹配新的页脚类,问题又回来了。这很奇怪,也许它与我的 CSS 有关系。

"footer_body"在我的项目中没有任何其他参考。

如果我直接在 HTML 上设置函数调用(类似<span onClick="javascript:obj.leftMethod()">),我有相同的行为。

可以肯定的是,这是一个 Phonegap/Android 问题,因为这不会发生在 PC 浏览器中(除了我必须评论很多只能在移动设备中使用的代码)。

这是代码:

HTML:

<div class="footer_body">
   <span class="left"><span>Text 1</span></span>
   <span class="right"><span>Text 2</span></span>
</div>

JS/jQuery:

function PageClass() {
...
    // called when the page is loaded
    this.init = function() {
        $(".footer_body", "#page_2").find(".left").unbind("tap").bind("tap", function() {
            that.leftMethod();
        });

        $(".footer_body", "#page_2").find(".right").unbind("tap").bind("tap", function() {
            that.rightMethod();
        });
        // that is a reference to "this" of the class
    }
}
4

1 回答 1

0

问题即将解决。真正的问题是所有的触摸事件都被带到了下一页。之前没注意,好像是自动点击,其实是之前的屏幕触摸事件触发了当前页面的触摸事件。

当然这是一个 Android 或 Phonegap 错误 - 更多信息在这里,以防有人对这个问题有同样的看法。

我仍然需要一个具体的解决方案,但我已经厌倦了调查这个,所以我暂时解决了这个设置一个短暂的延迟来激活监听器功能。

于 2012-06-19T19:12:54.870 回答