jQuery星级评级插件addClass不起作用

时间:2012-04-27 15:04:57

标签: jquery asp.net rating-system

我正在使用JQuery和以下网站http://www.fyneworks.com/jquery/star-rating/#中的星级评分插件。如果我在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");

我需要能够动态创建评级系统。因此,我需要一些帮助,使用jquery addClass或类似的方法将单选按钮转换为评级系统。

1 个答案:

答案 0 :(得分:0)

试试这个:

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

或事件更好:

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

编辑:更多解释 星级评级插件是一个普通的jQuery插件(查看如何构建插件here)。通常,要调用元素上的插件,您必须执行以下操作:

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

对于Star插件,在插件代码的底部找到以下代码:

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

这个代码片段将在所有带有'star'类的radiobuttons上运行rating()插件,它将在jQuery.ready事件上完成(用jQuery方法包装,就像将它添加到ready中一样)事件)。

当您将星级类添加到元素时,在执行上面的代码片段之后,您必须自己调用rating()插件。

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