2012-04-27 95 views
1

我正在使用jQuery与以下网站http://www.fyneworks.com/jquery/star-rating/#的星级插件。如果我在Asp标记中使用评分系统,则没有问题。但是,如果我动态创建评分系统并按照相同的步骤进行操作,它只会显示为单选按钮而不是明星。jQuery星级插件addClass不起作用

这里是按预期工作的标记:

<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"); 

我需要能够动态地创建评级系统:即使我尝试以下的单选按钮没有被转换。所以我需要一些帮助,让单选按钮被转换成使用jQuery addClass或类似的评分系统。

回答

0

试试这个:

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

或事件更好:

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

编辑:一些更多的解释 的星级插件是一个正常的jQuery插件(查看如何构建插件here )。通常情况下,调用一个元件上的插件,你将不得不做这样的事情:

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

中星插件的情况下,下面的代码是在插件代码的底部找到

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

此代码段将在所有带星号类的单选按钮上运行rating()插件,并且它将在jQuery.ready事件上完成(在jQuery方法中包装某些东西,与将它添加到准备好的事件)。

当您将star类添加到元素时,在上面的codesnippet被执行后,您必须自己调用rating()插件。

希望这个解释可以帮助你:)

+0

$('#Radio1').addClass(“star”)。rating();这个技巧非常感谢。我刚开始学习jQuery。你能告诉我为什么我在最后使用jQuery时需要rating()吗? – yerty 2012-04-27 15:57:24

+0

我给【解答】 – aaberg 2012-04-27 16:26:21

+0

加了一些解释明白了。再次感谢 – yerty 2012-04-27 16:40:42