Проблема с плагином звездного рейтинга JQuery и Ajax - PullRequest
2 голосов
/ 19 сентября 2009

Я новичок в JQuery, Ajax, JavaScript

У меня проблема с плагином JQuery star-rating-plugin. Я использовал его на некоторых страницах, и он работает очень хорошо. Однако, когда я использовал на странице 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 появляться в сообщении обратно?

Ответы [ 2 ]

3 голосов
/ 08 января 2010

У меня была проблема в сценарии Ajax. Только радио кнопки появились. Я просто перехватил события после загрузки контента.

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

Может быть, вы можете включить звезды с помощью следующего утверждения.

$('input[type="radio"].star').rating('enable');
0 голосов
/ 19 сентября 2009

Предположительно, вы присоединяете события к # star-rating-control. Если вы перестраиваете DOM через AJAX, ваши события будут потеряны. Вам нужно будет снова присоединить их после события AJAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...