1

次のサイトhttp://www.fyneworks.com/jquery/star-rating/#のStarRatingプラグインでJQueryを使用しています。Aspマークアップで評価システムを使用する場合、問題はありません。ただし、評価システムを動的に作成して同じ手順を実行すると、星ではなくラジオボタンとしてのみ表示されます。

期待どおりに機能するマークアップは次のとおりです。

 <input name="star4" id="Radio1" type="radio" class="star" />

これは機能せず、変換されていない無線要素のみを表示する関連するjqueryスクリプトです。

      function loadMovies(firstMovie, lastMovie) {

          for (incMovie = firstMovie; incMovie <= lastMovie; incMovie++) {
              $('<input>', {
                  type: "radio",
                  id: 'star1-' + incMovie,
                  name: "star",
               }).appendTo($('#sngMovie' + incMovie));

              $('#star1-' + incMovie).addClass('star');
          }
      }

ラジオボタンは、「スター」クラスがある場合、スター評価システムに変換されることになっています。ただし、クラスがJQueryに追加されている場合は機能しません。次のことを試しても、ラジオボタンが変換されませんでした。

マークアップ

<input name="star4" id="Radio1" type="radio" />  

脚本

$('#Radio1').addClass("star");

評価システムを動的に作成できる必要があります。そのため、jqueryaddClassなどを使用してラジオボタンを評価システムに変換するためのサポートが必要です。

4

1 に答える 1

0

これを試して:

$('#Radio1').addClass("star");
$('input[type=radio].star').rating();

またはより良いイベント:

$('#Radio1').addClass("star").rating();

編集:もう少し説明 星評価プラグインは通常のjQueryプラグインです(プラグインの作成方法についてはこちらをご覧ください)。通常、要素でプラグインを呼び出すには、次のようなことを行う必要があります。

$('#myElement').myPlugin();

Starプラグインの場合、プラグインコードの下部に次のコードがあります。

$(function(){
    $('input[type=radio].star').rating();
});

このスニペットは、「star」クラスのすべてのラジオボタンでrating()プラグインを実行し、jQuery.readyイベントで実行されます(jQueryメソッドで何かをラップすることは、readyイベントに追加することと同じです)。

スタークラスを要素に追加する場合、上記のコードスニペットが実行された後、rating()プラグインを自分で呼び出す必要があります。

この説明がお役に立てば幸いです:)

于 2012-04-27T15:13:05.557 に答える