1

私は 5 つの星をレンダリングする次の jQuery を持っています。RadPopupWindow (Telerik) に格納されています。あるページからクリックしてこのポップアップとコードを受け取ると、すべてが期待どおりに機能します。別のページから、ユーザーの投票と「私の投票を削除する」というリンクが一瞬表示され、その後消えます。つまり、半分は機能し、半分は機能しません。

 <script type="text/javascript">
    $(document).ready(function () {

        //if they've already voted, show the stars
        var nbrStarsVoted = $('#<%= hdfStarRating.ClientID %>').val();
        if (nbrStarsVoted > 0) {
            $('#removeVote').text('Remove my vote');
            //show stars, then addClass jQuery-ratings-full to light up the right amount of stars
            $('#starRating div:lt(' + nbrStarsVoted + ')').addClass('jquery-ratings-full');

        }

        //add correct class to star they've clicked on, and the ones before it
        $('.jquery-ratings-star').click(function () {
            $(this)
                .prevAll().addBack().addClass('jquery-ratings-full').end().end()
                .nextAll().removeClass('jquery-ratings-full');
            //make (this) be what's stored in the hiddenfield for postback (casting the vote)
            $('#<%= hdfStarRating.ClientID %>').val(this.id);
         });


        //remove their vote
        $('#removeVote').click(function () {
            $('#starRating div:lt(' + nbrStarsVoted + ')').removeClass('jquery-ratings-full');
            $('#removeVote').hide();
            $('#<%= hdfStarRating.ClientID %>').val(0);
        });


    });
</script>

そして、ここに HTML と CSS があります。jsFiddle、Codepen でテストしましたが、すべてうまく機能します。あるページから次のページまではそうではありません。何か案は?

<div style="float: left" id="starRating">
   <div class="jquery-ratings-star" id="1"></div>
   <div class="jquery-ratings-star" id="3"></div>
   <div class="jquery-ratings-star" id="4"></div>
   <div class="jquery-ratings-star" id="5"></div>
</div>

CSS:

<style type="text/css">
    .jquery-ratings-star {
        width: 16px;
        height: 16px;
        background-image: url('/../ESDNET/Images/Icons/star_disabled.png');
        background-repeat: no-repeat;
        position: relative;
        float: left;
        margin-right: 2px;
    }

    .jquery-ratings-full {
        background-image: url('/../ESDNET/Images/Icons/star.png');
    }
</style>

ポップアップ ページに RadScriptManager があり、サイト全体に Telerik があることを指摘しておく必要があります。どうやら私が最初にやって来て、jQuery をミックスに投入しようとしたのですが、まったくうまくいきません。

4

1 に答える 1

0

これはコードの問題ではなく、まったく別の問題であると判断できました。他の誰かの助けになることを期待して、ここに質問を残しています。

于 2013-07-01T13:22:36.407 に答える