jQuery简单日历插件版
先来看demo:http://codepen.io/jonechen/pen/xOgZMz
插件代码:
;
(function($) {
var Calendar = function(ele, options) {
this.ele = ele;
this.opt = options;
this.defaults = {
color: 'blue',
fontsize: '14px',
}
this.obj = $.extend({}, this.defaults, this.opt);
};
Calendar.prototype = {
init: function() {
return this.ele.on("focus", function() {
createEle($(this))
});
}
};
var currentDate = new Date();
var currentYear = currentDate.getFullYear();
var currentMonth = currentDate.getMonth(); function createEle(ele) {
var $parent = ele.parent();
if (!$parent || $parent[0].tagName == "BODY") {
throw "Error: this parent() is not defined";
return
} else {
ele.css("border", "1px solid red");
$parent.css({
padding: 0,
margin: 0,
position: 'relative',
});
if ($("#week").length == 0) {
$parent.append("<div id='week'><h1><span class=\'prev\'><</span><span class=\'content\'>1</span><span class=\'next\'>></span></h1></div>");
$parent.find("#week").css({
position: "absolute",
left: 0,
top: ele.outerHeight(true),
zIndex: 1000,
background: "#fff"
})
weeklist($parent.find("h1"));
var $week = ele.next();
updateDate(currentMonth, $week); //传参数月份
$week.find(".prev").click(function() {
updateDate(--currentMonth, $week);
});
$week.find(".next").click(function() {
updateDate(++currentMonth, $week);
});
}
}
} function weeklist(ele) {
if (ele.parents($("#week")).find("ul:eq(0)").length == 0) {
ele.after('<ul></ul>');
var weekText = ['日', '一', '二', '三', '四', '五', '六'];
for (var i = 0; i < 7; i++) {
ele.next().append('<li>' + weekText[i] + '</li>')
}
ele.next().after('<ul class=\'calendarList\'></ul>');
}
} function updateDate(m, obj) {
var activeDate = new Date(currentYear, m, 1); //外面传进来的不断变化的日期对象
var year = activeDate.getFullYear();
var month = activeDate.getMonth();
obj.find(".content").html(year + '年' + (month + 1) + '月');
var $calendarList = obj.find($(".calendarList"));
$calendarList.html("")
var n = 1 - activeDate.getDay();
if (n == 1) {
n = -6;
}
activeDate.setDate(n);
for (var i = 0; i < 42; i++) {
var date = activeDate.getDate();
$calendarList.append('<li>' + date + '</li>');
var $li = $calendarList.find("li");
if (activeDate.getMonth() != month) {
$li.eq(i).css("color", "#ccc");
}
$li.eq(i).attr('data-time', year + "-" + (activeDate.getMonth() + 1) + "-" + date);
$li.eq(i).click(function(event) {
obj.prev().val($(this).attr('data-time'));
obj.prev().css('borderColor', '#ccc')
obj.remove();
});
activeDate.setDate(date + 1);
}
}
$.fn.calendar = function(options) {
var calendares = new Calendar(this, options);
return calendares.init();
}
})(jQuery)
插件调用:
$("#ele").calendar();
jQuery简单日历插件版的更多相关文章
- 一款简洁大气的jquery日期日历插件
本jquery插件名为manhuaDate,暂时只支持jquery 1.9.0以下版本,比如jquery-1.8.3.min.js 查看效果网址:http://keleyi.com/a/bjad/em ...
- 【UI插件】开发一个简单日历插件(上)
前言 最近开始整理我们的单页应用框架了,虽然可能比不上MVVM模式的开发效率,也可能没有Backbone框架模块清晰,但是好歹也是自己开发出来 而且也用于了这么多频道的东西,如果没有总结,没有整理,没 ...
- 基于jQuery的日历插件
上个星期看到同事做一个有关日历提醒功能的需求,为了找个插件也是费了不少心思,然后刚好有时间就试着写了一个简单demo 来看下最终效果图吧: 是长得丑了一点,不要吐槽我-.- 首先来说说这个日历主要的制 ...
- 简单日历插件jquery.date_input.pack
html: <link rel="stylesheet" type="text/css" href="css/jquery.date_input ...
- jQuery简单倒计时插件
一. 效果预览 二. 实现 1. 按照特定的类结构布局. 2. 需要先引入jQuery,再引入此文件. /** * Author: CC11001100 * * 简单倒计时 * * 1. 支持页面内同 ...
- jquery简单的插件
$(function() { $.fn.插件名称 = function(options) { var defaults = { Event : "click", //触发响应事件 ...
- jquery简单切换插件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- jquery dataTimePicker日历插件(精确到小时)
效果图: 下载地址:https://github.com/WangChangyao/jquery-dataTimePicker.git <!DOCTYPE html> <h ...
- jQuery插件之——简单日历
最近在研究js插件的开发,以前看大神们,对插件都是信手拈来,随便玩弄,感觉自己要是达到那种水平就好了,就开始自己研究插件开发了.研究了一段时间之后,就开始写了自己的第一个日历插件,由于是初学插件开发, ...
随机推荐
- 算法与数据结构实验题 4.1 伊姐姐数字 game
★实验任务 伊姐姐热衷于各类数字游戏,24 点.2048.数独等轻轻松松毫无压力.一 日,可爱的小姐姐邀请伊姐姐一起玩一种简单的数字 game,游戏规则如下: 一开始桌上放着 n 张数字卡片,从左到右 ...
- 第一部分shell编程1基础知识
ls etc/init.d/ shell脚本的路径 ls /usr/local/apache2/ ls /usr/local/apache2/bin/apachectl 1. shell特性命令历史 ...
- GetTickCount 和getTickCount
GetTickCount:正常读取时间函数 getTickCount:不知道是什么鬼东东函数 都包含在windows.h中..运行出的结果天壤之别~~~
- Redis 学习之常用命令及安全机制
该文使用centos6.5 64位 redis3.2.8 一.redis常用命令 键值常用命令: 1. keys 返回满足pattern的所有key. 127.0.0.1:6379> ke ...
- docker使用记录
1.安装(开始前要注意系统内核版本是否合适,建议用7以上的系统吧,少点坑) //安装docker yum -y install docker-io //启动 service docker start ...
- React Components Template
React Components Template "use strict"; /** * * @author xgqfrms * @license MIT * @copyrigh ...
- CURL & Fetch
CURL & Fetch https://kigiri.github.io/fetch/ https://stackoverflow.com/questions/31039629/conver ...
- 【Linux】linux中删除指定文件外所有其他文件(夹)的问题
今天碰到要删除指定文件(夹)外的其他文件的问题.网上查到的方法是这样的 需要在当前文件夹中进行: rm -rf !(keep) #删除keep文件之外的所有文件 rm -rf !(keep1|keep ...
- 【swaggerui】swaggerui在asp.net web api core 中的应用
Swaggerui 可以为我们的webapi提供美观的在线文档,如下图: 实现步骤: NuGet Packages Install-Package Swashbuckle.AspNetCore 在s ...
- CF484E Sign on Fence && [国家集训队]middle
CF484E Sign on Fence #include<bits/stdc++.h> #define RG register #define IL inline #define _ 1 ...