2011-12-27 21 views
1

付きホテルランクウィジェットブラウザにページが最初にロードjQueryのAjaxの負荷

Without problem

それはしかし、問題は、Ajaxの負荷で再びロードされた、DIVコンテナは、この星の評価が含まれている場合に起動し正常に動作します。これは、元のラジオボタンにリセットされました:

with problem

作られたこの評価の星の作品へのコードは、次のと同じくらい簡単だった:

星評価ウィジェットプラグイン:

$("#stars-wrapper").stars({ 
    cancelShow: false, 
    disabled: true 
}); 

<span id="stars-wrapper"> 
       <input type="radio" id="rate1" name="newrate" value="1" title="Poor" /> 
       <input type="radio" id="rate2" name="newrate" value="2" title="Not that bad" /> 
       <input type="radio" id="rate3" name="newrate" value="3" title="Average" /> 
       <input type="radio" id="rate4" name="newrate" value="4" title="Good" /> 
       <input type="radio" id="rate5" name="newrate" value="5" title="Perfect" /> 
</span> 

アヤックス負荷:

$('#content_pane').load(href); 

この問題に取り組むw?それはAjaxの負荷でうまく動作していないようです。

+0

あなたのコードのjsFiddleを将来的に作ることができれば、特にシンプルで自己完結型の問題の場合には、素晴らしいことです。私たちがあなたを助け、働くソリューションを投稿することはずっと簡単です。 –

+0

jsFiddleに入れるのはサーバ側にも関係しているので便利ではありません。 – MrCooL

答えて

2

現在発生している問題は、ページに既に存在する要素にのみバインドしていることです。 AJAXリクエストを使用して新しいデータをページに読み込むと、星ウィジェットは公開されていないため、これらの新しい要素にバインドされません。

あなたはそうのようなあなたのAJAXロード内でこれらの要素にバインドし直す必要があります:

$('#content_pane').load(href, function() { 
    $("#stars-wrapper").stars({ 
    cancelShow: false, 
    disabled: true 
    }); 
}); 

おそらく、あなたのウィジェットはlive APIが含まれていますが、live以来jQueryので廃止されました。

+0

私はすでに同様の方法で試してみましたが、うまくいきません。私はポストした後、私は再びプラグインを実行しようとしました。しかし、私はこのソリューションを試しても同じ結果が得られました。 はい、live()は廃止され、jQuery 1.7ではon()に置き換えられました。たぶん私はlive()またはon()メソッドで試してみるべきです。 – MrCooL