一个通过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 相关文章推荐
jQuery阻止冒泡和HTML默认操作
Nov 17 Javascript
jQuery Ajax使用 全解析
Dec 15 Javascript
javascript 内存回收机制理解
Jan 17 Javascript
jQuery表单验证插件formValidator(改进版)
Feb 03 Javascript
js实现在网页上简单显示时间的方法
Mar 02 Javascript
详解vue前后台数据交互vue-resource文档
Jul 19 Javascript
Mac中安装nvm的教程分享
Dec 11 Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 Javascript
详解使用jest对vue项目进行单元测试
Sep 07 Javascript
JS调用安卓手机摄像头扫描二维码
Oct 16 Javascript
vue 实现websocket发送消息并实时接收消息
Dec 09 Javascript
vue props default Array或是Object的正确写法说明
Jul 30 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异常处理技术,顶级异常处理器
2012/06/13 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
JavaScript 学习笔记(五)
2009/12/31 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
详解Python3 pickle模块用法
2019/09/16 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
Django-migrate报错问题解决方案
2020/04/21 Python
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
公司合作协议书范本
2014/04/18 职场文书
幼儿教师个人总结
2015/02/05 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
Python+Tkinter打造签名设计工具
2022/04/01 Python
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA