一个通过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 相关文章推荐
EasyUI实现第二层弹出框的方法
Mar 01 Javascript
移除AngularJS下URL中的#字符的方法
Jun 19 Javascript
JS实现从网页顶部掉下弹出层效果的方法
Aug 06 Javascript
jQuery验证插件validate使用详解
May 11 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 Javascript
用js读写cookie的简单方法(推荐)
Aug 08 Javascript
JS获得一个对象的所有属性和方法实例
Feb 21 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
Oct 26 Javascript
vue操作下拉选择器获取选择的数据的id方法
Aug 24 Javascript
JavaScript常用数组操作方法,包含ES6方法
May 10 Javascript
原生js实现轮播图特效
May 04 Javascript
vue select 获取value和lable操作
Aug 28 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
php max_execution_time执行时间问题
2011/07/17 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
Python socket实现简单聊天室
2018/04/01 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
儿童python练习实例
2018/05/27 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
python匿名函数的使用方法解析
2019/10/10 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
春节请假条
2014/04/11 职场文书
红头文件任命书范本
2014/06/05 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
毕业生评语大全
2015/01/04 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL