一个通过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 相关文章推荐
用显卡加速,轻松把笔记本打造成取暖器的办法!
Apr 17 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
Nov 20 Javascript
JavaScript如何禁止Backspace键
Dec 02 Javascript
原生javascript实现的一个简单动画效果
Mar 30 Javascript
javascript 定时器工作原理分析
Dec 03 Javascript
bootstrap table动态加载数据示例代码
Mar 25 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
Jun 17 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
Jan 05 Javascript
vue 组件中添加样式不生效的解决方法
Jul 06 Javascript
JavaScript 2018 中即将迎来的新功能
Sep 21 Javascript
node实现分片下载的示例代码
Oct 17 Javascript
原生JS实现留言板功能
Feb 08 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使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
python获取本地计算机名字的方法
2015/04/29 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
python 下载文件的多种方法汇总
2020/11/17 Python
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
教育课题研究自我鉴定范文
2013/12/28 职场文书
财产保全担保书范文
2014/04/01 职场文书
小学二年级评语
2014/04/21 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
家庭困难证明
2014/10/12 职场文书
公务员政审材料
2014/12/23 职场文书
Python中常见的导入方式总结
2021/05/06 Python
MySQL读取JSON转换的方式
2022/03/18 MySQL