jQueryとjQueryMobileを使用するPhonegapアプリがあります。
一部のページでは、関数を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
}
}