0

我正在使用jQuery Bar Rating Plugin。插件的一切工作正常(它有效地将选择列表变成一系列可点击的图像),但是当用户从插件控制的选择列表中选择某些内容时,我想在页面上的其他地方“显示”一个隐藏字段.

要明确说明我正在尝试做的事情

当用户更新显示的评分时,Bar Rating我想显示一个保存按钮以确认更改。如果用户尚未更改评分,我不希望显示保存按钮。

尝试 1

$('#my-div).click ->
  $('#div-to-be-revealed').toggleClass('invisible')

但是代码永远不会触发,因为插件正在监视 div 的子项(将被单击的实际内容),并且在此代码有机会运行之前,它会通过“单击”执行某些操作。

尝试 2

$("#my-div").bind "DOMSubtreeModified", ->
  $('#div-to-be-revealed').toggleClass('invisible')

Bar Rating每当插件修改的 div 被修改时,上面的代码就会触发。问题是,该事件在页面初始加载期间被触发多次(因为插件正在更新元素),并且当我的鼠标悬停在插件在悬停时修改的 div 元素上时触发。

在不修改插件代码的情况下,我如何检测用户何时更新了Bar Rating插件管理的“选择列表”中的值?

4

1 回答 1

1

只需使用回调方法:

从文档

回调

onSelect:function(value, text) 选择评级时触发。

onClear:function(value, text) 当评分被清除时触发。

onDestroy:function(value, text) 当评级被销毁时触发。

我相信你会使用:onSelect回调。

$('#example-e').barrating('show', {
        onSelect:function(value, text) {
        //your code goes here.
        $('#div-to-be-revealed').toggleClass('invisible')
        alert('Selected rating: ' + value);
    }
});
于 2014-04-10T12:47:36.553 回答