1

jQuery評価プラグインを使用していますが、$(this)がセレクターを参照せず、代わりにObjectオブジェクトを返すため、対応するdivに成功メッセージを表示するのに問題があります。

これがプラグインコードです

これが私のコードです:

  $(".basic").jRating({
     bigStarsPath: 'assets/stars.png',
     rateMax: 5,
     length : 5,
     phpPath : '<%= Rails.application.class.routes.url_helpers.ratings_path %>',
     onSuccess : function(){
       $(this).find(".message").append('<small>Thanks for your vote!</small>'); 
     }
   });

したがって、問題は$(this)が$( "。basic")を参照していないことであり、プラグイン内のセレクターにアクセスするにはどうすればよいのでしょうか。これは初心者の質問かもしれないと確信していますが、私のJavaScriptスキルはまったく広範ではありません。前もって感謝します。

4

4 に答える 4

0

の最初の引数はonSuccessですelement。それを使用してください。

onSuccess : function(element){
  $(element).find(".message").append('<small>Thanks for your vote!</small>'); 
}

何かに設定するのはプラグイン次第です。この場合、プラグインは、要素ではなく、渡したオブジェクトとして関数をthisトリガーします。onSuccessthisoptionsjRating

于 2013-02-18T17:23:16.823 に答える
0
 onSuccess : function(element, rate){
   $(element).find(".message").append('<small>Thanks for your vote!</small>'); 
 }

[成功]オプションで要素や評価にアクセスできます。

于 2013-02-18T17:24:47.367 に答える
0
 var elem = $(this);
$(".basic").jRating({
     bigStarsPath: 'assets/stars.png',
     rateMax: 5,
     length : 5,
     phpPath : '<%= Rails.application.class.routes.url_helpers.ratings_path %>',
     onSuccess : function(){
       elem.find(".message").append('<small>Thanks for your vote!</small>'); 
     }
   });
于 2013-02-18T17:25:52.260 に答える
0

jRatingソースコードコード行に関して、 onSuccessおよびonErrorハンドラーに渡される引数は要素と評価であるため、解決策は次のようになります。

$(".basic").jRating({
 bigStarsPath: 'assets/stars.png',
 rateMax: 5,
 length : 5,
 phpPath : '<%= Rails.application.class.routes.url_helpers.ratings_path %>',
 onSuccess : function(element /*, rating */){
   $(element).find(".message").append('<small>Thanks for your vote!</small>'); 
 }
});
于 2013-02-18T17:30:37.800 に答える