【问题标题】:how to control target in a multiple jquery raty system如何在多 jquery 比率系统中控制目标
【发布时间】:2013-04-10 18:03:06
【问题描述】:

我正在使用 jquery raty 在 php 中做一个评级页面,其中显示了多个评级。它工作正常,除非一件事。得分功能和点击功能工作正常。但是我在尝试为每个元素设置目标时遇到问题。我想要的是在悬停在每颗星上时显示评级选择。它应该在带有“star_hint”类的 div 中显示提示,但事实并非如此。

每个元素都显示在一个 div 中,如下所示:

<div class="span4">
   <h4>First valoration</h4>
   <div class="star" data-number="3"></div>                                         
   <input type="hidden" class="score_value" />                                  
   <div class="star_hint"></div>
</div>

<div class="span4">
   <h4>Second valoration</h4>
   <div class="star" data-number="4"></div>                                         
   <input type="hidden" class="score_value" />                                  
   <div class="star_hint"></div>
</div>
etc....

脚本就是这个:

$('.star').raty({
    target: $(this).next('.star_hint'),
    score: function() {
        return $(this).attr('data-number');  // set default value 
    },
    click: function(score) {
        $(this).next().val(score);  // save clicked value in hidden input
        GetAverageNote();  // calculates average note from all ratys
    }
});

我不能使用 id 作为目标,因为每个明星项目都有不同的目标。我还尝试在函数中返回值,例如 score 和 click ,但它不起作用。 像这样:

target: function() {
    $(this).next('.star_hint');
   }

有人知道如何实现这项工作吗?

【问题讨论】:

    标签: jquery plugins rating raty


    【解决方案1】:

    您可以循环遍历所有需要绑定raty() 方法的spandivs,然后将tid 作为变量传递以设置raty({target:tid})

    Rate <span id="star_xxx" data-number="3" rel="#hint_xxx" ></span>  <span  id="hint_xxx">   </span>
    
    $( document ).ready(function() {
    $('span[id^="star"]').each(function(){
        var tid = $(this).attr('rel'); 
        $(this).raty({
            target : tid ,
            starOff : '/img/star-off.png', 
            starOn : '/img/star-on.png'     
    
    }) 
    }) 
    
    
    });
    

    【讨论】:

    • 非常感谢!这正是我想要的!效果很好!
    【解决方案2】:

    html

    <div class="star" data-score="2.6"></div><span class="hint"></span> 
    

    js

    $(function () {
         $('div[class^="star"]').each(function(){
            $(this).raty({
                readOnly:true,
                score: function() {return $(this).attr('data-score');},
                }) 
                $(this).next().text($(this).attr('data-score'));
            });
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2021-11-08
      相关资源
      最近更新 更多