我有一個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。 –
沒關係。無論如何,請嘗試。 –