博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js闭包
阅读量:7033 次
发布时间:2019-06-28

本文共 3071 字,大约阅读时间需要 10 分钟。

hot3.png

<script type="text/javascript"> //全部包裹 var sookerTime = (function ($) { var OBJ; function isLeap(year) { return (year % 100 == 0 ? (year % 400 == 0 ? 1 : 0) : (year % 4 == 0 ? 1 : 0)); } function isValid(d) { return (d.getTime() - (new Date()).getTime() < 0) ? true : false; } //是否在今天以后 function setDate(year, month) { //建立日期table var n1 = new Date(year, month, 1), firstday = n1.getDay(), mdays = new Array(31, 28 + isLeap(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31), rows = Math.ceil((mdays[month] + firstday) / 7), table = $("<table>", { "class": "days" }), tbody = $("<tbody>"); $("#calendar").find(".days").remove(); for (var i = 0; i < rows; i++) { var tr = $("<tr>"); for (j = 0; j < 7; j++) { var idx = i * 7 + j, d = idx - firstday + 1; if (d <= 0 || d > mdays[month]) { //无效日期 d = "&nbsp;" } var td = $("<td>", { html: d }).appendTo(tr); if (isValid(new Date(year, month, d))) { //今天以后的时间都不绑定时间 td.addClass("before"); td.hover(function () { $(this).addClass("day"); }, function () { $(this).removeClass("day"); }).click(function () { OBJ.attr("value", $("#calendar .year").attr("value") + "-" + (parseInt($("#calendar .month").attr("value")) + 1) + "-" + $(this).text()); $("#calendar").css("display", "none"); }); } } tr.appendTo(tbody); } tbody.appendTo(table); $("#calendar").append(table); } function createTime() { var calendar = $("<div>", { "class": "pc_caldr", id: "calendar" }), td = new Date(), of = OBJ.offset(); if (document.getElementById("calendar")) { calendar = $("#calendar").css({ left: of.left, top: of.top + 18, display: "block" }); setDate(td.getFullYear(), td.getMonth()); $("#calendar .year").attr("value", td.getFullYear()); $("#calendar .month").attr("value", td.getMonth()); } else { var se = "<div class='selector'><select class='month'><option value='0'>一月</option><option value='1'>二月</option><option value='2'>三月</option><option value='3'>四月</option><option value='4'>五月</option><option value='5'>六月</option><option value='6'>七月</option><option value='7'>八月</option><option value='8'>九月</option><option value='9'>十月</option><option value='10'>十一月</option><option value='11'>十二月</option></select><select class='year'><option value='2009'>2009</option><option value='2010'>2010</option><option value='2011'>2011</option></select></div><ul class='weeks'><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ul>"; calendar.css({ left: of.left, top: of.top + 18 }).html(se).appendTo($("body")); setDate(td.getFullYear(), td.getMonth()); $("#calendar .year").attr("value", td.getFullYear()); $("#calendar .month").attr("value", td.getMonth()); bindClick(); } } function bindClick() { //给下拉列表绑定时间 var a = $("#calendar .month"), b = $("#calendar .year"); a.change(function () { setDate(b.attr("value"), $(this).attr("value")); }); b.change(function () { setDate($(this).attr("value"), a.attr("value")); }); } return { init: function (obj) { //返回调用的接口 OBJ = obj; createTime(); } } })(jQuery); //使用方法 $(".tiemin").focus(function(){ sookerTime.init($(this)); }); </script>

转载于:https://my.oschina.net/u/876290/blog/341972

你可能感兴趣的文章
PHP本地文件包含漏洞环境搭建与利用
查看>>
OGNL设计及使用不当造成的远程代码执行漏洞
查看>>
Vue-cli + express 构建的SPA Blog(采用前后端分离方案)
查看>>
ios中的多播委托
查看>>
Java基础-单例模式
查看>>
轻仿QQ音乐之音频歌词播放、锁屏歌词
查看>>
MongoDB 4.0 RC 版本强势登陆
查看>>
AliOS Things网络适配框架 - SAL
查看>>
iOS 客户端与服务端做时间同步
查看>>
多个请求统一更新界面
查看>>
illuminate/routing 源码分析之注册路由
查看>>
网易公共技术Java研发工程师面经(offer)
查看>>
说说如何在登录页实现生成验证码功能
查看>>
笔记-softmax、softmax loss
查看>>
FastDFS蛋疼的集群和负载均衡(六)之Nginx高可用集群
查看>>
C语言入门经典读书笔记----第十一章 结构化数据
查看>>
Apache Thrift系列详解(二) - 网络服务模型
查看>>
chrome devtools使用详解——Performance
查看>>
了解一下ES6: 解构赋值&字符串
查看>>
7 - 在 Django Admin 后台发布文章
查看>>