次の非常に単純なコードスニペットがあります。これは、別のファイルから、構築している複数ページのサイトの1つのjQueryMobileページに読み込まれます。
$(document).ready(function(){
$('select[name="state_choice"]').change(function(){
var thisState = $(this).val();
var indexState = '#' + thisState;
$('.state').hide();
$(indexState).show();
});
})
動作していましたが、ページをリロードしたときにのみ動作するようになりました。Firebugでページの読み込みを調べていましたが、このリンクが再読み込みされるまで表示されなかったため、jQueryファイルが一貫して読み込まれていませんでした。
<script src="inc/jquery/belmont.custom.js"></script>
通常、コンソールはjQuery mobileで新しいページが呼び出されたときに表示されますが、この特定のページへのリンクがクリックされたときに、この特定のページがコンソールログに常に表示されるとは限らないことがわかりました。デスクトップシミュレーター(DashcodeのiOSシミュレーター)、デスクトップブラウザー(FFおよびSafari)、およびiPhoneでテストしたところ、すべて同じ結果になりました。
誰かがこの行動を見たことがありますか?これが一貫して機能することをどのように確認できますか?
編集:私は次のようにバインドを使用するようにコードを変更しました:
$(document).bind('pageinit', function(){
$('select[name="state_choice"]').change(function(){
var thisState = $(this).val();
var indexState = '#' + thisState;
$('.state').hide();
$(indexState).show();
});
})
console.log(indexState)を関数に追加しましたが、これも一貫して起動しません。
そして、私は実際に以前に誤って話しました-これは単一のページで構成されるモバイルサイトです。jQueryカスタム関数スクリプトをすべてのページにロードする必要がありますか?または、問題の1つにロードすることはできますか?