2009-09-18 74 views
2

我是新的與JQuery,Ajax,JavaScript問題與JQuery星級插件和Ajax

我有一個JQuery星級插件的問題。我在一些頁面中使用它,它工作得很好。但是,當我在Ajax頁面中使用時,它的行爲不一樣。

當頁面重新加載時,不再顯示任何內容。輸入是隱藏的,像以前一樣,但div沒有出現。

我有這樣的代碼,當頁面加載:

<td class="rowstyle0" width="30%" align="left"> 
    <a onclick="javascript:abrirConsultaNova('/projectManager/projectManager/atividade.do?method=consultar&id=219', 'Consultar 219');" href="#219"> 
     <span class="star-rating-control"> 
      <div class="rating-cancel" style="display: none;"> 
      <a title="Cancel Rating"/> 
      </div> 
      <div id="avaliacao1_219" class="star-rating rater-0 star {split:2} star-rating-applied star-rating-readonly star-rating-on" style="width: 8px;"> 
      <a title="1" style="margin-left: 0px;">1</a> 
      </div> 
      <div id="avaliacao2_219" class="star-rating rater-0 star {split:2} star-rating-applied star-rating-readonly star-rating-on" style="width: 8px;"> 
      </div> 
      <div id="avaliacao3_219" class="star-rating rater-0 star {split:2} star-rating-applied star-rating-readonly star-rating-on" style="width: 8px;"> 
      </div> 
      <div id="avaliacao4_219" class="star-rating rater-0 star {split:2} star-rating-applied star-rating-readonly star-rating-on" style="width: 8px;"> 
      </div> 
     </span> 
     <input id="avaliacao1_219" class="star {split:2} star-rating-applied star-rating-readonly" type="radio" disabled="disabled" value="1" name="avaliacao219" style="display: none;"/> 
     <input id="avaliacao2_219" class="star {split:2} star-rating-applied star-rating-readonly" type="radio" disabled="disabled" value="2" name="avaliacao219" style="display: none;"/> 
     <input id="avaliacao3_219" class="star {split:2} star-rating-applied star-rating-readonly" type="radio" disabled="disabled" value="3" name="avaliacao219" style="display: none;"/> 
     <input id="avaliacao4_219" class="star {split:2} star-rating-applied star-rating-readonly" type="radio" disabled="disabled" value="4" name="avaliacao219" style="display: none;"/> 
    </a> 
</td> 

而這個網頁時動態重新加載代碼:

<td class="rowstyle0" width="30%" align="left"> 
    <a onclick="javascript:abrirConsultaNova('/projectManager/projectManager/atividade.do?method=consultar&id=219', 'Consultar 219');" href="#219"> 
     <input id="avaliacao1_219" class="star {split:2} star-rating-applied" type="radio" disabled="disabled" value="1" name="avaliacao219" style="display: none;"/> 
     <input id="avaliacao2_219" class="star {split:2} star-rating-applied" type="radio" disabled="disabled" value="2" name="avaliacao219" style="display: none;"/> 
     <input id="avaliacao3_219" class="star {split:2} star-rating-applied" type="radio" disabled="disabled" value="3" name="avaliacao219" style="display: none;"/> 
     <input id="avaliacao4_219" class="star {split:2} star-rating-applied" type="radio" disabled="disabled" value="4" name="avaliacao219" style="display: none;"/> 
    </a> 
</td> 

我怎樣才能得到div的出現在後背部?

+0

你有一個頁面,我們可以看到代碼的行動嗎? – easement 2009-09-18 20:20:45

回答

0

想必您將活動附加到#star-rating-control。如果你通過AJAX重建DOM,你的事件將會丟失。您將需要在AJAX事件後重新附加它們。

+0

我也試過了,但是當我重新貼上時,星星消失了。 – Allice 2009-09-21 18:06:33

3

我在Ajax場景中遇到了問題。只有單選按鈕出現。加載內容後,我只是將事件掛鉤。

$('input[type="radio"].star').rating(); // Hook the events. 

也許你可以通過以下語句啓用星星。

$('input[type="radio"].star').rating('enable');