jQuery Mobileを使用して、さまざまなhtmlファイルに複数のページがあるWebサイトを作成しています。1つのファイルにこのDIVがあります:
<div data-role="page" id="page3" style="overflow-x: hidden !important;">
<div data-role="content">...
</div>
</div>
最初のページのヘッダーで、デリゲートを次のように定義しました。
$(document).delegate('[id="page3"]', 'pageshow', function () {
alert('page3');
};
問題は、このデリゲートが最初にページがロードされたときに1回、2回目に2回など、ページにアクセスするたびにデリゲートがもう一度起動されることです。
プロセスは次のとおりです。
ページ1->ページ3(1つのアラート)->ページ1->ページ3(2つのアラート)...にアクセスします。
$('#page3')
そのIDを持つ要素がfirebugコンソールで実行されているかどうかを確認しようとしましたが、取得するアイテムは1つだけです。
問題をデバッグするために他に何を確認できるかわかりません。
編集:
page1.html
<html>
<head>
<script type="text/javascript" src="assets/js/delegation.js"></script>
<script type="text/javascript">
delegation.delegate3()
</script>
</head>
<body> ....
page3.html
<html>
<head>
<script type="text/javascript" src="assets/js/delegation.js"></script>
</head>
<body>
<div data-role="page" id="page3" style="overflow-x: hidden !important;">
<div data-role="content">...
</div>
</div>....
delegation.js
var delegation = (function () {
return {
delegate3:function delegate3() {
$(document).delegate('[id="page3"]', 'pageshow', function () {
alert('page3');
};
}
})();