一个通过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 相关文章推荐
popdiv
Jul 14 Javascript
Javascript alert消息换行的方法
Aug 07 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
Oct 11 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
Sep 06 Javascript
jquery插件锦集【推荐】
Dec 16 Javascript
react.js CMS 删除功能的实现方法
Apr 17 Javascript
微信小程序 图片宽高自适应详解
May 11 Javascript
jQuery中each循环的跳出和结束实例
Aug 16 jQuery
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 jQuery
JavaScript设计模式---单例模式详解【四种基本形式】
May 16 Javascript
关于vue 结合原生js 解决echarts resize问题
Jul 26 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 进程锁定问题分析研究
2009/11/24 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
Python中分数的相关使用教程
2015/03/30 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Python批量发送post请求的实现代码
2018/05/05 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
农民工工资发放承诺书
2014/03/31 职场文书
欢迎领导检查标语
2014/06/27 职场文书
商铺门面租房协议书
2014/10/21 职场文书
单位租车协议书
2015/01/29 职场文书
水电工岗位职责
2015/02/14 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL