禁用星标突出显示但为jQuery Raty插件启用click事件

时间:2014-10-02 07:00:52

标签: javascript jquery raty

我使用jQuery Raty插件。它很棒,可以完成我需要的大部分工作。我一直在寻找一种解决方案,当用户将光标移到控件上时不突出显示星星。仅仅readOnly: true使它无效,因为它会禁用我需要处理的click事件。

我尝试绑定到mouseover事件:

mouseover: function(score, evt) {
  this.score = 0;
}

但是Raty没有将其数据(this.score)提升回DOM。

然后我尝试处理mouseover事件来更改每个图片的src属性:

mouseover: function(score, evt) {
    rateControl.children().each(function(img) {
        img.attr('src', 'star-off.png');
    });
}

同样,没有结果可取。

在没有禁用Raty的click事件的情况下,我应该怎样考虑禁用星标突出显示?

1 个答案:

答案 0 :(得分:1)

刚刚找到解决方案。它似乎是非语义的,虽然它有效。我绝对应该更加关注Raty手册的最后几节。

要禁用星形突出显示,不需要实际禁用它,而是用默认值替换突出显示的星号。要做到这一点,人们想用params启动Raty:

$('#raty').Raty({
    starOff: 'star-off.png',
    starOn: 'star-off.png',
    ...
}

Raty将继续处理鼠标悬停事件并更改星标'src属性,但由于每个人的值保持不变,因此不会发生任何视觉效果。