一个通过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 Div中加载其他页面的实现代码
Feb 27 Javascript
Textarea与懒惰渲染实现代码
Jan 04 Javascript
jQuery对Select的操作大集合(收藏)
Dec 28 Javascript
Javascript Objects详解
Sep 04 Javascript
jquery性能优化高级技巧
Aug 24 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
Jan 12 Javascript
EditPlus中的正则表达式 实战(2)
Dec 15 Javascript
vue实现商品加减计算总价的实例代码
Aug 12 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
Aug 17 Javascript
Element Input组件分析小结
Oct 11 Javascript
使用react context 实现vue插槽slot功能
Jul 18 Javascript
微信小程序webSocket的使用方法
Feb 20 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 循环列出目录内容的函数代码
2010/05/26 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
php类中private属性继承问题分析
2012/11/01 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
PHP+MYSQL会员系统的开发实例教程
2014/08/23 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
2020/09/13 PHP
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
JS实现全屏预览F11功能的示例代码
2018/07/23 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python实现在windows下操作word的方法
2015/04/28 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
python实现二分查找算法
2020/09/18 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
什么是封装
2013/03/26 面试题
简单英文演讲稿
2014/01/01 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
文明餐桌活动方案
2014/02/11 职场文书
个人债务授权委托书
2014/10/17 职场文书
律师函格式范本
2015/05/27 职场文书
经营场所使用证明
2015/06/19 职场文书
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL