【问题标题】:How to apply raty plugin to new generated divs?如何将比率插件应用于新生成的 div?
【发布时间】:2013-02-27 08:46:25
【问题描述】:


我有一个带有比率 div 的页面。使用经典代码$('.raty').raty({...});,该插件可以在这些现有的 div 上完美运行。但是,当我通过 ajax 函数加载新的比率 div 时,新的 div 不会“转换为星星”。你能帮我找出我的错误吗?

$.ajax({
    url: '/ws/player/reviews/p/1',
    context: document.body,
    contentType: "application/json; charset=utf-8",
    dataType: "jsonp",
    jsonp: "callback",
    jsonpCallback: "jsonpCallbackfunction",
    success: function(data) {
        $.each(data.response.reviews, function( key, value ) {
            html = '';
            html += '<div class="raty read" data-rating="5"></div>';
            $('#reviews').append(html);
        });

    }
    data: {player_id: player_id, from: $('#reviews').data('from')}
}).done(function() {
    $(this).find('.raty').raty({
        path: '/img/raty/',
        readOnly: true,
        score: function() {return $(this).data('rating');}
    });
});

虽然,如果我尝试 $(this).find('.raty').html('blablabla'); "blablabla" 正确写入我所有的 '.raty' div。

感谢您的帮助,

杰里米

【问题讨论】:

  • 您必须在 ajax 函数的成功回调中针对动态加载的 div 初始化 raty 插件 - 无论是在 $.each 调用内部还是之后。
  • 这是我认为我在 ajax 调用后使用“完成”所做的。如前所述,在此 ajax 调用中,如果我将 .raty( 替换为 .html( 效果很好。因此我不如何重新初始化 raty 插件?(我也尝试了每个函数的代码,但它没有'也不起作用。此外,我真的想为每个 div 写一次 ('.raty') 而不是 '#raty098098')
  • 你确定你的成功回调被调用了吗?尝试删除jsonp:jsonpCallback: 选项,然后将?callback=? 添加到您的网址末尾以查看是否有效。顺便说一句,它在小提琴中工作:jsfiddle.net/mccannf/Z75xQ/7
  • 你有没有找到解决方案?
  • 这可能对你有帮助.. stackoverflow.com/questions/19495461/…

标签: jquery raty


【解决方案1】:

你犯了一个小错误

查看此代码

$.ajax({
url: '/ws/player/reviews/p/1',
context: document.body,
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonpCallbackfunction",
success: function(data) {
    $.each(data.response.reviews, function( key, value ) {
        html = '';
        html += '<div class="raty read" data-rating="5"></div>';
        $('#reviews').append(html);
    });
}
data: {player_id: player_id, from: $('#reviews').data('from')}}).done(function() {
$(this).find('#reviews .raty').raty({ // Changes
    path: '/img/raty/',
    readOnly: true,
    score: function() {return $(this).data('rating');}
});});

希望,这段代码可以工作

【讨论】:

    猜你喜欢
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 2013-04-09
    • 2021-04-14
    • 2012-08-14
    • 1970-01-01
    • 2018-05-01
    相关资源
    最近更新 更多