- 浏览: 399300 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (173)
- java 程序设计 (22)
- struct学习笔记 (11)
- spring学习笔记 (10)
- hibernate学习笔记 (5)
- oracle学习笔记 (2)
- javascript学习笔记 (17)
- jquery学习笔记 (10)
- CSS学习笔记 (16)
- 面向协议的编程 (1)
- jmf学习笔记 (1)
- EJB3.0学习 笔记 (3)
- linux学习笔记 (20)
- 云计算架构学习笔记 (1)
- php程序设计 (1)
- python程序设计 (0)
- 数据结构算法 (5)
- 数据库 (8)
- 数据库设计 (0)
- eclipse 插件 (3)
- resin (2)
- html5 (4)
- linux程序设计 (3)
- android开发 (0)
- 其他 (4)
- 服务器端脚本 (0)
- ruby程序设计 (0)
- perl程序设计 (0)
- 开放平台开发 (1)
最新评论
-
huxin889:
第三四张图片裂了
ant 打包 jar 可执行 -
leichenlei:
user.hashCode() 会出现负数,怎么处理?
mysql merge分表 -
niaoqq1:
不好使。来看看我的方法。js:var NodeArr=getS ...
java中如何在ajax发送参数的时候,参数以数组的方式传递到后数组台 -
zhijiandedaima:
为什么我的defaultCache是空,空指针异常啊
spring 整合memcache -
lt26i:
帮了大忙了向楼主学习
java中如何在ajax发送参数的时候,参数以数组的方式传递到后数组台
写日期插件主要的2个问题:
1。计算某个月有多少天,2012.9月到底有多少天呢?
(new Date(+(new Date(2012, 7, 1)) - 24×60×60×1000)).getDate();
2、知道了当月有多少天还不行,要知道当月1号是要放在什么位置
new Date(2012, 7,1).getDay();
|
下面是日期插件的calendar.js代码
(function($){ //参数 var setting={ container_idName: 'container',//容器的类名 column_space: 10,//列间距 cell_selector: '.data',//要排列的砖块的选择器,context为整个外部容器 pre_year_selector: '.prev-year', next_year_selector: '.next-year', pre_month_selector: '.prev-month', next_month_selector: '.next-month' }, // calendar=$.calendar={},//对外信息对象 $container=null;//容器 $date = new Date(); //当前的时间对象 $year = $date.getFullYear(); $month = $date.getMonth(); $week = $date.getDay(); $.fn.extend({ calendar:function(opt){ opt=opt||{}; setting=$.extend(setting,opt); $container=calendar.$container=$(this); //1初始化日期的输出 _init($('#'+setting.container_idName)); //2 给页面的a标签注册事件处理函数 $(setting.pre_year_selector).live('click',_handPreYear); $(setting.pre_month_selector).live('click',_handPreMonth); $(setting.next_year_selector).live('click',_handNextYear); $(setting.next_month_selector).live('click',_handNextMonth); // $('.row '+setting.css_selector).live('click',_handClickCell); $('.row '+setting.cell_selector).live('click',_handClickCell); //3 给input绑定事件 $('#datepicker').bind('focus',_handInputFocus); //$('#datepicker').bind('blur',_handInputBlur); $('#'+setting.container_idName).bind('mouseleave ',_handMouthOutCont); $('#'+setting.container_idName).bind('mouseenter',_handMouthOverCont); } }); //初始化表格的输出 function _init(element){ //输出操作 _calcTableContent($year,$month,element); } function _calcTableContent(year,month,element){ var html = ''; html = ('<div class="opt"><a href="javascript:void(0);" class="prev-year"><<</a><a href="javascript:void(0);" class="prev-month"><</a><a href="javascript:void(0);" class="title">'+year+'年'+(month+1)+'月</a><a href="javascript:void(0);" class="next-month">></a><a href="javascript:void(0);" class="next-year">>></a></div>'); //输出星期 标题 html += ('<div class="head"><span >天</span><span >一</span><span >二</span><span >三</span><span >四</span><span >五</span><span >六</span></div>'); //debugger; var daysOfMonth = _calcDaysForMonth(year,month+1); var firstDayOfMonth = _calcFirstDayPosition(year,month); var count = 1; outer: for(var i=1;i<7;i++){ html += ('<div class="row">'); for(var j=0;j<7;j++){ if(j<firstDayOfMonth && i==1){ html += ('<a href="###" class="cell"></a>'); }else{ if($date.getDate()===count && $month===month){ html += ('<a href="###" class="cell data highlight" data-year="'+year+'" data-month="'+month+'" data-day="'+(count)+'">'+(count)+'</a>'); }else{ html += ('<a href="###" class="cell data" data-year="'+year+'" data-month="'+month+'" data-day="'+(count)+'">'+(count)+'</a>'); } count++; if(count>daysOfMonth){ break outer; } } } html += ('<div style="clear:both;"></div>'); html += ('</div>'); } //alert(alert(element[0].tagName)); element.html(html); } function creatColumn(){//创建列 waterfall.column_num=calculateColumns();//列数 //循环创建列 var html=''; for(var i=0;i<waterfall.column_num;i++){ html+='<div class="'+setting.column_className+'" style="width:'+setting.column_width+'px; display:inline-block; *display:inline;zoom:1; margin-left:'+setting.column_space/2+'px;margin-right:'+setting.column_space/2+'px; vertical-align:top; overflow:hidden"></div>'; } $container.prepend(html);//插入列 return $('.'+setting.column_className,$container);//列集合 } /** *j 计算一个月有多少天 */ function _calcDaysForMonth(year,month){ var days = (new Date(+(new Date(year, month, 1)) - 86400000)).getDate(); return days; } /** *计算这个月的第一天显示的的位置,可以根据它的星期来计算 */ function _calcFirstDayPosition(year,month){ return new Date(year, month,1).getDay(); } //返回上一年的数据 function _handPreYear(){ console.log(1); var element = $('#'+setting.container_idName); var year = $('body').data('year'); var month = $('body').data('month'); //debugger; if(year){ year = year-1; }else{ year = parseInt($year)-1; } if(!month && month!=0){ month = $month; } $('body').data('year',year); _calcTableContent(year,month,element); } //返回上一个月的数据 function _handPreMonth(){ console.log(2); var element = $('#'+setting.container_idName); var year = $('body').data('year'); var month = $('body').data('month'); if(month || month==0){ month = month-1; if(month<0){ month =0; return; } }else{ month = parseInt($month)-1; } if(!year){ year = $year; } $('body').data('month',month); _calcTableContent(year,month,element); } //返回下一年的数据 function _handNextYear(){ console.log(3); var element = $('#'+setting.container_idName); var year = $('body').data('year'); var month = $('body').data('month'); //debugger; if(year){ year = year+1; }else{ year = parseInt($year)+1; } if(!month && month!=0){ month = $month; } $('body').data('year',year); _calcTableContent(year,month,element); } //返回下一个月的数据 function _handNextMonth(){ console.log(4); var element = $('#'+setting.container_idName); var year = $('body').data('year'); var month = $('body').data('month'); //debugger; if(month || month==0){ month = month+1; if(month>11){ month = 11; return; } }else{ month = parseInt($month)+1; } if(!year){ year = $year; } $('body').data('month',month); _calcTableContent(year,month,element); } function _operator(t){ /** switch(t){ case:'pre-year' break; caese 'pre-month' break; case: 'next-year' break; case: 'next-month' break; default: } */ } function _handClickCell(){ //$('.row '+setting.cell_selector).each(function(index, element) { $('.row '+setting.cell_selector).removeClass('highlight'); $(this).addClass('highlight'); //获取保存在a标签里面的数据 var $year = $(this).attr('data-year'); var $month = $(this).attr('data-month'); var $day = $(this).attr('data-day'); //设置年、月、日的值 console.log($year+'-'+$month+'-'+$day); $('#datepicker').val($year+'-'+(new Number($month)+1)+'-'+$day); // }); } function _handInputFocus(){ var datapicker = $('#datepicker')[0]; var position = getElementPos(datapicker); position.left -= 12; position.top += 32; //alert(position.left+'-'+position.top); $('#'+setting.container_idName).offset({left:0,top:0}); $('#'+setting.container_idName).offset(position); $('#'+setting.container_idName).show('fast'); } function _handInputBlur(){ //$('#'+setting.container_idName).hide(); //让div容器的left,top还原,要不然每次点击input的时候left,top都会在原来的基础上加 //$('#'+setting.container_idName)[0].style.left = 0; //$('#'+setting.container_idName)[0].style.top = 0; } function _handMouthOutCont(){ $('#'+setting.container_idName).hide(); //让div容器的left,top还原,要不然每次点击input的时候left,top都会在原来的基础上加 $('#'+setting.container_idName)[0].style.left = 0; $('#'+setting.container_idName)[0].style.top = 0; } function _handMouthOverCont(){ _handInputFocus(); } function getElementPos(elt){ var x=0,y=0; while(elt!=null){ x += elt.offsetLeft; y += elt.offsetTop; elt = elt.offsetParent; } return {top:x,left:y}; } })(jQuery);
html页面代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="calendar.css" rel="stylesheet">
<script src="jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="calendar.js" charset="gbk"></script>
<title>Calendar</title>
</head>
<body>
<div id="wrapper">
<h2 style="text-align:center;margin-top:30px;">jquery calendar插件</h2>
日期:<input type="text" id="datepicker"/>
<div id="container">
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
var opt = {
container_idName:'container'
}
$('#container').calendar(opt);
});
</script>
</body>
</html>
这个日期插件不完善,这只是最开始的版本。
效果图:
发表评论
-
jquery mobile tel call
2013-04-16 17:29 1353在jQuery mobile中,如果我们需要客户端手机 ... -
jQuery 瀑布流插件
2012-09-10 16:33 1434瀑布流布局在目前貌 ... -
jquery 制作幻灯片浏览图片
2012-08-26 12:10 1098jquery幻灯片的效果浏览 ... -
jQuery写的tab选项卡
2012-07-14 22:39 1134选项卡的主要原理是给每个标题栏注册事件,事件处理函数的作用就是 ... -
用jQuery的动画函数实现幻灯片的效果
2012-07-13 10:57 1199jquery的给我们提供了一 ... -
jQuery用面向对象的思想来编写验证表单的插件
2012-07-12 21:35 1172本人的重点是怎么构建一个简单有效可 ... -
Jquery实现返回顶部的功能
2012-06-04 23:51 1201<!DOCTYPE HTML PUBLIC " ... -
项目中常用的jquery 范例
2012-05-04 17:09 1313文会给你们展示50个jquer ... -
jquery 判断某个元素是否绑定 click事件
2012-05-04 16:38 2771判断 id为foo的元素上 是否绑定了click事件 ...
相关推荐
jquery 日期插件jquery 日期插件jquery 日期插件jquery 日期插件
jquery日期插件
强大的jquery时间日期插件,希望可以满足你的需求。 时间、日期可自由选择,样式可自由选择。
简单实用蓝色jQuery日期选择插件。使用jquery进行日期事件
jquery 日期选择插件 datapicker
jQuery日历插件最简单的实现方式 仅显示日期
适合各种浏览器的jquery日期插件!分享了 支持日期多选!
一款非常精美的Jquery日期插件.......................................
基于jQuery的日期选择器插件,可用户选择日期和生日使用,使用前请先加载一个jQuery库,原创作品,仅供学习交流。
jquery日期插件-datepicker
jquery日期选择插件,里有具体使用demo 多种样式
DateTimePicket jQuery插件:使用这个插件来悄悄地添加一个DateTimePicker,日期选择器或timepicker下拉到您的表单。
如何使用jquery的日期插件 * 引入jquery的js文件 <script type="text/javascript" src="../js/jquery-1.4.2.js"> * 引入日期插件的文件 * 日期插件的js文件 <script type="text/javascript" src="./jquery....
glDatePicker jquery日期插件
简单jQuery日期日历插件代码.zip
把这个插件用了一下。可以运行,方便初学者使用。
jquery移动端日期选择插件