首页 / JQUERY / jquery 扩展插件方法
jquery 扩展插件方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了jquery 扩展插件方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3556字,纯文字阅读大概需要6分钟。
内容图文
分析插件jquery.countdown.js
1 (function($) { 2 $.fn.countdown = function(options) { 3// default options 4var defaults = { 5 attrName : ‘data-diff‘, 6 tmpl : ‘<span class="hour">%{h}</span>小时<span class="minute">%{m}</span>分钟<span class="second">%{s}</span>秒‘, 7 end : ‘已结束‘, 8 afterEnd : null 9 }; 1011 console.log(options); 12 options = $.extend(defaults, options); 13 console.log(options); 141516// trim zero17function trimZero(str) { 18return parseInt(str.replace(/^0/g, ‘‘)); 19 } 20// convert string to time21function getDiffTime(str) { 22var m; 23if ((m = /^(\d{4})[^\d]+(\d{1,2})[^\d]+(\d{1,2})\s+(\d{2})[^\d]+(\d{1,2})[^\d]+(\d{1,2})$/.exec(str))) { 24var year = trimZero(m[1]), 25 month = trimZero(m[2]) - 1, 26 day = trimZero(m[3]), 27 hour = trimZero(m[4]), 28 minute = trimZero(m[5]), 29 second = trimZero(m[6]); 30return Math.floor((new Date(year, month, day, hour, minute, second).getTime() - new Date().getTime()) / 1000); 31 } 32return parseInt(str); 33 } 34// format time35function format(diff) { 36var tmpl = options.tmpl, day, hour, minute, second; 37 day = /%\{d\}/.test(tmpl) ? Math.floor(diff / 86400) : 0; 38 hour = Math.floor((diff - day * 86400) / 3600); 39 minute = Math.floor((diff - day * 86400 - hour * 3600) / 60); 40 second = diff - day * 86400 - hour * 3600 - minute * 60; 41 tmpl = tmpl.replace(/%\{d\}/ig, day) 42 .replace(/%\{h\}/ig, hour) 43 .replace(/%\{m\}/ig, minute) 44 .replace(/%\{s\}/ig, second); 45return tmpl; 46 } 47// main48returnthis.each(function() { 49var el = this, 50 diff = getDiffTime($(el).attr(options.attrName)); 51function update() { 52if (diff <= 0) { 53 $(el).html(options.end); 54if (options.afterEnd) { 55 options.afterEnd(); 56 } 57return; 58 } 59 $(el).html(format(diff)); 60 setTimeout(function() { 61 diff--; 62 update(); 63 }, 1000); 64 } 65 update(); 66 }); 67 }; 68 })(jQuery);
1、$.fn.countdown 为扩展jquery方法,函数名为countdown
2、 var defaults 相当于类里成员变量,
3、defaults = {
attrName : ‘data-diff‘,
tmpl : ‘<span class="hour">%{h}</span>小时<span class="minute">%{m}</span>分钟<span class="second">%{s}</span>秒‘,
end : ‘已结束‘,
afterEnd : null
};
defaluts里的键值对提供属性,相当于类里成员函数的参数。
4、options = $.extend(defaults, options); 将options值合并到defaults,并返回合并结果
5、return this.each(function() ); 获取网页的的id或name值的并修改的函数操作
网页调用样例:
<! doctype html > < html > < head > < meta charset ="utf-8" /> < title >Countdown Demo</title><style></style><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><script src="jquery.countdown.js"></script><script> $(function() { $(‘.J_countdown1‘).countdown(); $(‘.J_countdown2‘).countdown({ tmpl : ‘<span>%{d}</span>天<span>%{h}</span>小时<span>%{m}</span>分<span>%{s}</span>秒‘ }); $(‘.J_countdown3‘).countdown({ tmpl : ‘<span>%{d}</span>天, <span>%{h}</span>小时, <span>%{m}</span>分, <span>%{s}</span>秒‘ }); }); </script></head><body><div class="J_countdown1" data-diff="10"></div><div class="J_countdown1" data-diff="70"></div><div class="J_countdown1" data-diff="3610"></div><div class="J_countdown1" data-diff="86410"></div><div class="J_countdown2" data-diff="21234567890"></div><div class="J_countdown3" data-diff="21234567890"></div></body></html>
原文:http://www.cnblogs.com/hzijone/p/5936282.html
内容总结
以上是互联网集市为您收集整理的jquery 扩展插件方法全部内容,希望文章能够帮你解决jquery 扩展插件方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。