文档章节

js闭包

攀爬的小瓜牛
 攀爬的小瓜牛
发布于 2014/11/07 14:34
字数 3
阅读 153
收藏 1

<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>

© 著作权归作者所有

上一篇: eclipse 安装j2ee
下一篇: js 封装 js
攀爬的小瓜牛
粉丝 5
博文 112
码字总数 63322
作品 0
成都
程序员
私信 提问
JavaScript 需要掌握的知识

不仅仅是面试,JavaScript 开发者都应该知道的十个概念 深入理解javascript原型和闭包(完结) javascript深入理解js闭包 js作用域 JS之作用域与闭包 JavaScript内存优化 可爱的小熊 js内存回...

IT追寻者
2016/06/25
81
0
javascript深入理解js闭包

一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量...

Yamazaki
2012/06/15
16
0
javascript中闭包是什么

javascript中闭包是什么 JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。闭包就是将函数内部和函数外部连接起来的一座桥梁。 函数的闭包使用场景:比如我们想要一个函数来...

前端攻城小牛
2018/10/29
0
0
深入理解JavaScript闭包

一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量...

柯楠
2012/11/02
208
0
通过示例学习Javascript闭包

译者按: 在上一篇博客,我们通过实现一个计数器,了解了如何使用闭包(Closure),这篇博客将提供一些代码示例,帮助大家理解闭包。 原文: JavaScript Closures for Dummies 译者: Fundebug 为...

Fundebug
2018/11/21
6
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
10
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
80
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部