Javascript JQuery插件视错觉

Javascript JQuery插件视错觉,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我今天创造了这个。这是一个用于星级评定的jquery插件 它在div标记中呈现所需的所有内容,并使用设置进行自定义 $('#myNewRatingControl').makeStar({ sourceImage: urlOfImage }).starRating({ sourceImage: urlOfImage, hoverImage: urlOfImage, initialRating: 3 }); 这是一种享受,我对它印象深刻。然而,有几件事我想做的视

我今天创造了这个。这是一个用于星级评定的jquery插件

它在div标记中呈现所需的所有内容,并使用设置进行自定义

$('#myNewRatingControl').makeStar({ 
    sourceImage: urlOfImage 
}).starRating({
    sourceImage: urlOfImage,
    hoverImage: urlOfImage,
    initialRating: 3
});
这是一种享受,我对它印象深刻。然而,有几件事我想做的视光它。我曾尝试实施这些优化,但没有成功

详情如下:

  • 将它们压缩成一个函数,我无法做到这一点,因为图像附带了单击事件处理程序。它们仅在DOM更新后应用,直到jquery函数返回其输出时才应用。至少这是我所理解的,请使用我的JQuery向我展示其他方面-我在上面看到小提琴
  • 图像预加载。我遇到过一些图像预加载程序,但我不知道如何在这种情况下使用它们。将它们放入何处,以及在预加载后如何调用它们
  • 由于第一个问题已经解决,我想知道如何使第二个函数在插件(作用域)内私有
  • 请你用我的提琴教我如何实现这些视错觉好吗

    谢谢,

    因此,我有一个新的,我做了以下工作:

  • 缩短代码
  • 重构代码
  • 启用的三态星(悬停、选中、未选中)
  • 为SelecteImage引入了另一个设置
  • 现在唯一剩下的是:

  • 职能范围私有化
  • 进行图像预加载
  • 看一看这两段代码,了解不同的视错觉

    三州代码:

        function setImageSrcProper()
        {
            for (var i = 1; i < settings.numberOfStars; i++)
            {
                var id = '#star' + i;
                var selected = $(id).attr('data-selected');
                var hover = $(id).attr('data-hover');
                if (selected == 'true')
                {
                    $(id).attr('src', settings.selectedImage);   
                }
                else
                {
                    $(id).attr('src', settings.sourceImage);   
                }
    
                if (hover=='true')
                {
                    $(id).attr('src', settings.hoverImage);   
                }
            }
        }
    
    函数setImageSrcProperty()
    {
    对于(变量i=1;i

    我使用
    数据选择
    数据悬停
    作为三态,其基本思想是,在任何时候,星星要么被选择,要么被取消选择。然后,当引入鼠标时,“悬停”将覆盖这些状态中的任何一种。鼠标离开时,状态将返回到原来的状态,所有的
    数据悬停
    都将被篡改。

    makeStar
    中,而不是
    return$(this)
    ,为什么不
    返回$(this).append(/*..*/).starting(设置)?你为什么不使用现有的插件:?哦,听起来不错,我是否必须更改星号以使其成为私有的,我可以更改它吗?我的小提琴已经更新了这个改进!!!你的意思是说你想把它卖掉?有关详细信息,请查看许可证选项卡