【问题标题】:Turn JQuery Star Rating into Control将 JQuery 星级评定变为控制
【发布时间】:2013-06-17 09:48:53
【问题描述】:

我有这个fiddle,它很酷,我第一次尝试创建 jquery 控件。很简单,只是一个星级控件。

我希望能够把它变成一个控件,这样我就可以调用:

$('#someDiv').starRating();

它会将这个 div 转换为星级。

我希望能够设置一些属性:

  1. 空星源
  2. 悬停星源
  3. 星级(如果是新评级则留空)

所以它看起来像这样:

$('#someDiv').starRating({
    emptyStarSource : 'http://www.imageland.com/image.png',
    hoverStarSource : 'http://www.imageland.com/image.png',
    initialRating : 3
});

在如何更改选项等方面类似于 Datepicker。

如果有人能指出我正确的方向,那就太棒了!

编辑

所以我在得到的答案的帮助下试了一下。 img 点击事件不起作用,我猜想在将点击处理程序附加到页面后,我必须以某种方式附加它们。如何?之后,我只需要进行设置!

ratings control

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    要在 jQuery 中编写插件,请使用以下语法

    $.fn.setRed = function(){
      return $(this).each(function(){ //this is required for jQuery chaining to work and also if multiple html objects are passed
        var _obj = $(this);
        //work on the object here
        _obj.css("background-color", "red");
      });
    }
    

    然后你可以使用

    $(".ratings").setRed();
    

    【讨论】:

    • 更改了代码,您可以将代码复制并粘贴到您的项目中。它将指定选择器的所有背景设置为红色
    • 我很难理解我如何使用我在小提琴中创建的所有其他功能以及您提供的功能?比如如何使用鼠标悬停功能等。
    • 我看到了你的代码。在您的插件中,您不应该使用像“#rating”这样的绝对选择器。将它们转换为 $(this) 对象的相对选择器。这就是我将 $(this) 存储为 _obj 的原因之一,它是一个闭包
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多