一个通过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 相关文章推荐
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
Nov 04 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
Javascript中判断变量是数组还是对象(array还是object)
Aug 14 Javascript
jQuery实现带玻璃流光质感的手风琴特效
Nov 20 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
Jun 01 Javascript
实例讲解JavaScript中的this指向错误解决方法
Jun 13 Javascript
Highcharts学习之坐标轴
Aug 02 Javascript
js中Number数字数值运算后值不对的解决方法
Feb 28 Javascript
webpack踩坑之路图片的路径与打包
Sep 05 Javascript
使用Bootrap和Vue实现仿百度搜索功能
Oct 26 Javascript
vue简单封装axios插件和接口的统一管理操作示例
Feb 02 Javascript
js回到页面指定位置的三种方式
Dec 17 Javascript
一个字符串反转函数可实现字符串倒序
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
留言板翻页的实现详解
2006/10/09 PHP
php foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
讲解python参数和作用域的使用
2013/11/01 Python
Python中用max()方法求最大值的介绍
2015/05/15 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
python提取xml里面的链接源码详解
2019/10/15 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
2014大学生党员评议个人总结
2014/09/22 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL