昨天在经理安排下,提出一个需求,显示出日历,并在日历上显示特殊日期,当鼠标移动至此日期时,弹出div,显示当天具体的操作信息。在网上与园子里查找一段时间,并没有准确的demo,所以无奈只有自己研究,二次开发DatePicke。

先来看下DatePicke提供的API这些我不想说了,不知道的直接上官网,或者百度、google查找。

官网给出的API中要实现备忘录效果,我们要用到三个地方

1.平面显示。

2.特殊天和特殊日期。

3.日历放大:这里说下控制calendar的大小的属性,目录:DatePicker->skin->default->datepicker.css->.WdateDiv,我们可以更改宽度,高度属于日历自适应的,如果强制改变的话,会早成页面扭曲变形的原因,所以设置基本宽度即可。

有了上面三个准备后,接下来就是重要的一步,编写自定义扩展事件,这里我也只是举例,大家可以根据例子写出自己想要的结果。

首先打开WdatePicker.js,calendar.js,这里介绍下这俩个核心库。

WdatePicker:配置文件,定义接口的地方。

calendar:主函数库,在WdatePicker中定义的方法在这里实现。

进入主题:添加自定义函数

首先我们要把两个js文件进行解压,方便查看推荐一个不错的网址:js优化工具

在WdatePicker中定义新增方法的入口,specialDateMouseOver

specialDateMouseOver:null,

现在查看firefox中某一特殊日期html

<td class="Wwday" align="center" onmouseout="this.className='Wwday'" onmouseover="this.className='WwdayOn'" onclick="day_Click(2013,4,14);">14</td>
<td class="WspecialDay" align="center" onmouseout="this.className='WspecialDay'" onmouseover="this.className='WdayOn'" onclick="day_Click(2013,4,15);">15</td>

这里可以看出在特殊日期与普通日期下,都是定义了统一的事件处理方法,当然这时候我们要对特殊日期的onmouseover事件进行重写,我们去源代码中查看定义此方法的位置,搜索关键字"WspecialDay",很快就能在js中找到此属性的位置

                G.a("<td align=center ");if (J) {if (this.checkValid(K, "d", $)) {if (this.testSpeDay(new Date(K.y, K.M - 1, K.d).getDay()) || this.testSpeDate(K)) {H = "WspecialDay";}G.a('οnclick="day_Click(' + K.y + "," + K.M + "," + K.d + ');" ');G.a("οnmοuseοver=\"this.className='" + E + "'\" ");G.a("οnmοuseοut=\"this.className='" + H + "'\" ");} else {H = "WinvalidDay";}G.a("class=" + H);G.a(">" + K.d + "</td>");} else {G.a("></td>");}

我们可以清楚的看到,在定义每一列<td>的事件时,是在这里生成的,废话不多说,发现这一特点后我们来做个实验,在H="WspecialDay"下添加代码

 G.a("οnmοuseοver=\"alert(1);\"");

保存后回到主页,手动移到特殊日期后,就能够弹出1的提示框内容。

功能很简单,重要的是一个思路,接下来我们要对这个方法进行封装,以接口的形式对外,使开发人员自定义特殊日期的鼠标移动事件,代码如下:

WdatePicker.js 对外提供接口

calendar.js 实现接口

重新定义

G.a("οnmοuseοver=\"_mouseOvers(this)\"");

这样我们就可以自定义特殊日期的鼠标移动事件了。实现方式和my97调用其他方法的形式一样。

 WdatePicker({ specialDates: ['2013-04-15', '2013-04-19'], eCont: 'div1', _SpecialOnmouseover: function (event) { alert('111'); } })

本篇内容实质是比较简单的,有js基础的朋友相信都能看懂,重点并不是功能,而是实现的思路,我们在编程时要勇于发现与思索,彻底透析每一项,每一点,这样是代码最高的艺术,好了最后我把我做的一个扩展功能给大家看下

以上都是鼠标移到特殊日期后显示当天的特殊内容,这里非常感谢群里的水墨轩大牛的指导,让小弟我又学习到了很多知识,另外小小的做个广告,欢迎加群261882616这里欢迎,高手新手,大牛,小菜们的加入

大家共同学习共同进步,共同享受编程的快乐。

转载于:https://www.cnblogs.com/doNetTom/archive/2013/05/02/3022108.html

my97DatePicker 自定义扩展方法(实现备忘录)相关推荐

  1. Unity自定义扩展方法

    问题背景 在使用unity开发过程中,通常会遇到一种情况,比如说给物体重新赋值坐标的问题, Transfrom tran:float pos_x=1,pos_y=1,pos_z=1;tran.posi ...

  2. 让你觉得破坏了封装性的扩展方法

    扩展方法源于对扩展方法的了解是来自List<T>的Where.Order.GroupBy等方法的使用,智能感知提示这些方法都是扩展方法,于是MSDN上查阅后总结如下自定义扩展方法(将字符串 ...

  3. jquery的扩展方法介绍

    最近一直在写js,这其中也少不了一位js的主角了jQuery,下面介绍的是jQuery的一些扩展,也就是jQuery的扩展方法,jQuery的扩展方法有两种方式,一种是jQuery本身的扩展方法,另一 ...

  4. class ts 扩展方法_JUnit 5自定义扩展

    前言 在org.junit.jupiter.api.extension包下,JUnit5提供了丰富的扩展接口,通过实现这些接口,我们可以定制自己的扩展并注册到JUnit中来实现功能扩展. Extens ...

  5. EFCore3.1+编写自定义的EF.Functions扩展方法

    前言 本文主要是讲解EF Core3.0+ 如何实现自定义的数据库扩展函数,虽然EF.Functions 提供了很多数据库函数,但是并不全面.比如加密解密...这样的话 我们就需要自己扩展这些数据库函 ...

  6. C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型...

    本文内容: 继承 Equal示例 结构和类 属性 Ref and Out 类操作 扩展方法 接口 可空类型 分部类 1. 继承 using System; using System.Collectio ...

  7. 何时使用自定义HTTP 方法

    何时使用自定义HTTP 方法 问题描述 您想知道使用自定义HTTP 方法的影响. 解决方案 避免使用非标准的自定义HTTP 方法,因为引入新方法后,就不能依赖那些只了解标准HTTP 方法的现有软件了. ...

  8. (转)[翻译] ASP.NET MVC Tip #1 - 使用扩展方法创建新的HTML Helper

    原文地址:http://weblogs.asp.net/stephenwalther/archive/2008/06/13/asp-net-mvc-tip-1-creating-new-html-he ...

  9. Jquery_如何扩展方法

    jQuery 别名 $ 一.  类级别扩展方法(比如$.ajax(...)) 1> 单个全局方法 $.testExtend = function (){console.log("单个全 ...

最新文章

  1. 华为201万年薪招毕业生!来自这些高校
  2. 洛谷P3773 [CTSC2017]吉夫特(Lucas定理,dp)
  3. 【C++】运算符重载
  4. 如何调试 Android 上 HTTP(S) 流量
  5. Eclipse 自动注释的设置
  6. Projection with Type Hint用法
  7. 牛客练习赛26B 烟花 (概率DP)
  8. java B2B2C Springcloud多租户电子商城系统-集成项目简介
  9. 关于系统自带 .NET Framework 版本的说明
  10. 游戏 服务器 微服务_整体服务器与微服务
  11. 单片机实验-定时中断
  12. idea中Terminal终端无法执行GIT命令
  13. Content-Type
  14. Linux中的df命令
  15. aws rds监控慢sql_使用AWS CLI部署AWS RDS SQL Server
  16. Ovum 最新市场报告称数据中心持续改变光网络市场
  17. 凸优化第二章凸集 2.3保凸运算
  18. esri开发大赛项目总结
  19. W25Q256编程时需要关注的器件特性
  20. XCode 动态库未签名问题的解决

热门文章

  1. HTTP之长连接与短连接(C++ Qt框架实现)
  2. php闭包 回调函数,PHP|PHP实践-闭包
  3. 土是独体字结构吗_205砂浆、混凝土强度等级与定额不同时,你会调整换算吗?...
  4. win10+deepin双系统安装方法(UEFI+GPT)
  5. php搬迁安装,【资料搬迁】安装phpunit
  6. 文字 竖排居中_学会了这几招,瞬间就搞定PPT文字排版问题!
  7. vue django mysql_django2 rest_framework + vue.js + mysql5.6 实现增删改查
  8. Android Studio 安装 PlantUML 插件
  9. python operator __gt___Python operator.gt方法代码示例
  10. 使用map的find头文件_C++ map的基本操作和使用