JQuery插件优化
JQuery Plugin Optomisations
我今天做了一把小提琴。这是一个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);
}
}
}
我用data-selected
和data-hover
表示三态,基本思想是在任何时候恒星要么被选中,要么不被选中。然后,当鼠标被引入时,悬停将覆盖这些状态。当鼠标移出时,状态将恢复到原来的状态,并且所有data-hover
将被伪造。
相关文章:
- 如何在Angular2中使用jQuery插件
- 可以前端maven插件使用节点,npm已经安装
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 我的jQuery插件参数没有正确启动,遇到了问题
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- TableExport jquery插件:文件名和扩展名问题
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- jQuery插件-从插件中调用公共方法
- 压缩phonegap中ios的图像插件
- 以可优化的方式使用requirejs加载模板
- jQuery粘性插件可变顶部间距
- 优化谷歌地球插件中绘制的巨大 GPS 轨道
- JavaScript 插件设置优化
- 如何优化jquery选择的插件加载超过5万个结果
- JQuery插件优化
- 如何添加一个插件到requirejs优化器,它只在构建期间运行
- 有没有优化JS/CSS文件的浏览器插件?
- 使用requirejs时无法加载jQuery插件;r.js优化器
- 使用UglifyJS插件进行Webpack优化会导致运行时错误