sf_*_*anb 37 jquery jquery-ui datepicker jquery-plugins jquery-ui-datepicker
我想强调jquery datepicker上的日期,其中有附加事件(我不是在谈论js事件,而是现实生活事件:D).
是否有可用的插件或资源(如教程)来帮助我实现这一目标?
谢谢.
PS:我没有使用datepicker来选择日期,只是为了访问附加到日期的事件
PS2:我将在多语言网站(fr和英语)上使用它,这就是为什么我想到了datepicker
And*_*ker 65
这绝对是可能的,在我看来,滥用datepicker小部件并不是太多.可以选择在线初始化窗口小部件,这可以完全用于上面描述的场景.
您需要采取以下几个步骤:
在线初始化datepicker.将datepicker小部件附加到a,<div>以便它始终显示,您不必将其附加到input:
$("div").datepicker({...});
Run Code Online (Sandbox Code Playgroud)点按beforeShowDay活动以突出显示特定活动的日期.此外,在可以填充并向下发送到客户端的数组中定义事件:
事件数组:
var events = [
{ Title: "Five K for charity", Date: new Date("02/13/2011") },
{ Title: "Dinner", Date: new Date("02/25/2011") },
{ Title: "Meeting with manager", Date: new Date("03/01/2011") }
];
Run Code Online (Sandbox Code Playgroud)
事件处理程序
beforeShowDay: function(date) {
var result = [true, '', null];
var matching = $.grep(events, function(event) {
return event.Date.valueOf() === date.valueOf();
});
if (matching.length) {
result = [true, 'highlight', null];
}
return result;
},
Run Code Online (Sandbox Code Playgroud)
这可能看起来有点复杂,但它所做的只是突出显示日期选择器中具有events上面定义的数组中的条目的日期.
定义一个onSelect事件处理程序,您可以在其中告诉datepicker在单击一天时要执行的操作:
onSelect: function(dateText) {
var date,
selectedDate = new Date(dateText),
i = 0,
event = null;
/* Determine if the user clicked an event: */
while (i < events.length && !event) {
date = events[i].Date;
if (selectedDate.valueOf() === date.valueOf()) {
event = events[i];
}
i++;
}
if (event) {
/* If the event is defined, perform some action here; show a tooltip, navigate to a URL, etc. */
alert(event.Title);
}
}
Run Code Online (Sandbox Code Playgroud)
同样,它看起来像很多代码,但所有发生的事情是我们发现与点击日期相关的事件.在我们找到该事件后,您可以采取您想要的任何操作(例如,显示工具提示)
这是一个完整的工作示例:http://jsfiddle.net/Zrz9t/1151/.确保导航到2月/ 3月以查看事件.