我有一个Phonegap应用程序,使用jQuery和jQuery Mobile。JS函数被触发而不被调用
在某些页面中,我已经将一个函数绑定到了一个tap事件,但是该函数在页面加载时被触发。 调试了一下之后(使用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
}
}
把'调试器; ''leftMethod()/ rightMethod()'函数中的第一行。在Chrome中打开,当它加载时,按下'Ctrl + Shift + I'它会弹出一个检查器,其中包含一个暂停的脚本标签,您可以在其中获得整个堆栈跟踪(调用者,被调用者,事件等) –
@ GRIGORE-TURBODISEL, m使用Phonegap。 –
没关系。无论如何,请尝试。 –