0

search.htmlスライダーを含むと呼ばれる html ページがありますが、このページで完全に機能します。

jQuery .load() 関数を使用して、このページを別のページ (メイン ページ) にロードしようとしています。

スライダーの初期化を から削除search.htmlし、メイン ページの load() のコールバック関数内に配置して、次のように、AJAX を介して設定された DOM の準備が整った後に実行されるようにしました。

$("#display_area").load("search.html","",function(response,status,xhr){ 
//#display_area is a div
$( "#sliderprice" ).slider({ max: 1000 },{ step: 10 }); 
//#sliderprice is a div
})

jQuery と jQuery UI の JS スクリプトを、search.html ページとメイン ページの両方のヘッドに含めました。

メインページをロードすると、スライダーが正常に動作することがありますが、まったく動作しない (初期化されない) 場合があり、これが発生すると、firebug のエラーコンソールに次のように表示されます: $("#sliderprice").slider は関数ではありません

ページを更新するだけで、うまくいくこともあればうまくいかないこともあります。

これを修正して、いつでも機能するようにしたいと思います。どんな助けでも大歓迎です。

4

1 に答える 1

0

私がしなければならなかったのは、jQuery と jQuery UI の JS スクリプトをページから削除search.htmlし、メイン ページにのみ保持することだけでした。

どうやら、両方に配置すると、 .load() 関数が起動したときにスクリプトが再度リロードされ、スクリプトのリロードが完了する前にコールバック関数が起動することがあります。

スクリプトの挿入と読み込みが .load() または一般的にどのように機能するかはわかりませんが、問題は修正されました。

于 2012-06-26T14:08:37.013 に答える