一个通过script自定义属性传递配置参数的方法


Posted in Javascript onSeptember 15, 2014

刚刚开始正式的职业生涯,最近几天在给公司做统一的头部js,想到了一个通过script自定义属性传递配置参数的方法。

有时候我们编写了一个js插件,要使用该插件需要先在html中引入该插件Js,然后再添加一个script标签,在里面调用。如一个图片切换的插件。其代码大致如下:

$.fn.picSwitch = function(option){
//这里是图片切换的代码
}

再引入了该插件后,需要再在另外的script标签内加入调用代码

$('#pic').picSwitch({
'speed' : '400',
'derection' : 'left'
//... 这里是配置
})

这当然没有什么问题,但有些时候我们并不想再多添加个script标签,如果只引入script标签,那该怎么做怎么传递配置参数呢?

这时候我们就可以利用script上的自定义属性进行传递配置参数。在这之前先要对该图片切换插件进行处理。修改后代码如下:

$.fn.picSwitch = function(){
//这里是图片切换的代码
};

//写好插件后就直接调用
$('这里是选择器,需要在script标签上获取').picSwitch('这里是配置参数,需要在script标签上获取');

接下来就是用script上传递参数了,在html页面上如下引用该js插件。

<head>
<script src='/script/picSwitch.js' id='picSwitch' obj='#pic' option='{"speed":"400","derection":"left"}'></script>
</head>
<body>
<div id="pic">
//这里是具体结构
</div>
</body>

最后再修改插件为:

$.fn.picSwitch = function(){
//这里是图片切换的代码

};

//写好插件后就直接调用
var script = $('#picSwitch'),//标签上的id
selector = script.attr('selector'),
option = JSON.parse(script.attr('option'));//标签上的是字符串需要转为json对象
$(selector).picSwitch(option);

这样就只用了一个标签便实现了功能,配置变化只需要改变script自定义属性即可。

Javascript 相关文章推荐
JavaScript QueryString解析类代码
Jan 17 Javascript
javascript date格式化示例
Sep 25 Javascript
JavaScript实现的一个计算数字步数的算法分享
Dec 06 Javascript
JS中字符串trim()使用示例
May 26 Javascript
jquery实现从数组移除指定的值
Jun 24 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
Dec 21 Javascript
JavaScript结合HTML DOM实现联动菜单
Apr 05 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
Jul 26 Javascript
JS加密插件CryptoJS实现的Base64加密示例
Aug 16 Javascript
对angularJs中2种自定义服务的实例讲解
Sep 30 Javascript
4 种滚动吸顶实现方式的比较
Apr 09 Javascript
vue表单验证之禁止input输入框输入空格
Dec 03 Vue.js
一个字符串反转函数可实现字符串倒序
Sep 15 #Javascript
jquery实现类似淘宝星星评分功能有截图
Sep 15 #Javascript
javascript使用数组的push方法完成快速排序
Sep 15 #Javascript
一款由jquery实现的整屏切换特效
Sep 15 #Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
Sep 13 #Javascript
用javascript关闭本窗口不弹出询问框的方法
Sep 12 #Javascript
javascript trim函数在IE下不能用的解决方法
Sep 12 #Javascript
You might like
sony ICF-2010 拆解与改装
2021/03/02 无线电
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
Python中type的构造函数参数含义说明
2015/06/21 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
python线程中的同步问题及解决方法
2019/08/29 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
英国女装网上商店:I Saw It First
2018/10/18 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2012/04/17 面试题
高中生学习总结的自我评价范文
2013/10/13 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
高中班主任评语大全
2014/04/25 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
成本会计岗位职责
2015/02/03 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
生活小常识广播稿
2015/08/19 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
2019年工作总结范文
2019/05/21 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server