1

我正在使用 jQuery 评级插件,我无法将成功消息显示到相应的 div 中,因为 $(this) 不引用选择器,而是返回 Object 对象。

这是插件代码

这是我的代码:

  $(".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

的第一个参数onSuccesselement。用那个。

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

由插件来设置this某些东西,在这种情况下,插件会使用您传递给的对象而不是元素来触发onSuccess函数。thisoptionsjRating

于 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 回答