【问题标题】:jQuery star rating plugin variable doesnt return correctlyjQuery 星级插件变量未正确返回
【发布时间】:2016-04-19 11:18:35
【问题描述】:

我正在制作一个评分系统,以使用 5 星对电影进行评分。我为此使用jQuery bar plugin (jQuery bar plugin)。

有人可以从 1 到 5 投票。数据存储在数据库中。有人投票后,星星将被禁用并显示用户评分的星星数量。

使用插件的initialRating 值,它将定义“选中”的星数。所以如果这个变量是 4,就会有 4 颗星被着色。

当我硬编码时,例如 initialRating: 4 它可以工作。虽然当我使用initialRating: currentRating(投票的星星数量)时,它不会返回正确的数量,它只会显示 1 颗星。当我console.logcurrentRating 时,它会返回4

那么,硬编码4 是如何起作用的,而不是不起作用的currentRating(值为4)。

代码

$(function () {

    currentRating = $(".rating").val(); //Getting the value that someone vote previously
    console.log(currentRating); // Displays 4

    $('#rating').barrating('show', {
        theme: 'fontawesome-stars',
        showSelectedRating: true,
        initialRating: currentRating,
        onSelect: function (value, text) {
            movieTitle = $('.movie-name'). text(),
               tmdb_id = $(".imdb_id").val(),
                _token = $(".csrf_field").val();

            $.ajax({
                headers: {
                    'X-CSRF-TOKEN': _token
                },
                method: "POST",
                url: "/movies/" + tmdb_id + "/rate",
                data: {
                    title: movieTitle,
                    tmdb_id: tmdb_id,
                    rating: value
                },
                success: function (result) {
                    $("#div1").html(result);
                }
            });
        } 
    });
});

【问题讨论】:

  • 你能添加一个更简单的代码版本吗?
  • 找到问题了,谢谢!

标签: javascript jquery jquery-bar-rating


【解决方案1】:

变量currentRatingstring,而插件需要integer

使用parseInt()string 转换为integer 将解决问题。

代码

currentRating = parseInt(currentRating);

【讨论】:

  • 希望你的“currentRating”字符串不以“0”开头,例如“010”= 8...总是使用parseInt(currentRating, 10);(虽然后来的浏览器似乎没有这个缺点)
猜你喜欢
  • 2017-10-24
  • 1970-01-01
  • 2018-09-19
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 2012-03-28
相关资源
最近更新 更多