我需要这个脚本的小帮助:
var disabledDays = ["2013-9-5", "2013-9-13", "2013-9-28"];
var tips = ['aaa', 'bbb', 'ccc'];
$("#datepicker").datepicker({
showButtonPanel: false,
firstDay: 1,
dateFormat: 'yy-mm-dd',
beforeShowDay: function (date) {
var m = date.getMonth(),
d = date.getDate(),
y = date.getFullYear();
for (i = 0; i < disabledDays.length; i++) {
if ($.inArray(y + '-' + (m + 1) + '-' + d, disabledDays) != -1) {
//return [false];
return [true, 'highlight', tips[i]];
}
}
return [true];
}
});
http://www.jsfiddle.net/VPzL7/
我无法弄清楚如何使用相同的方法,因为我选择了几天来在这些选定的突出显示日期添加href链接。
答案 0 :(得分:6)
试试这个解决方案:
<强> HTML 强>
<div id="datepicker"></div>
<强> CSS 强>
td.highlight {
border: none !important;
padding: 1px 0 1px 1px !important;
background: none !important;
overflow:hidden;
}
td.highlight a {
background: #99dd73 url(bg.png) 50% 50% repeat-x !important;
border: 1px #88a276 solid !important;
}
<强> JQUERY 强>
var disabledDays = ["2013-9-20", "2013-9-24"];
var tips = ['some description1', 'some other description2'];
var hrefs = ['http://www.bbc.com/', 'http://www.cnn.com/'];
$("#datepicker").datepicker({
showButtonPanel: false,
firstDay: 1,
dateFormat: 'yyyy-mm-dd',
beforeShowDay: function (date) {
var m = date.getMonth(),
d = date.getDate(),
y = date.getFullYear();
for (var i = 0; i < disabledDays.length; i++) {
if ($.inArray(y + '-' + (m + 1) + '-' + d, disabledDays) != -1) {
return [true, 'highlight', tips[disabledDays.indexOf(y + '-' + (m + 1) + '-' + d)]];
}
}
return [true];
},
onSelect: function(dateText, inst) {
var date = new Date(dateText.slice(4)),
m = date.getMonth(),
d = date.getDate(),
y = date.getFullYear();
if ($.inArray(y + '-' + (m + 1) + '-' + d, disabledDays) != -1) {
window.location = hrefs[disabledDays.indexOf((y + '-' + (m + 1) + '-' + d))];
}
}
});
这是一个有效的Fiddle。希望它对其他人有所帮助..
答案 1 :(得分:2)
这不是您问题的直接答案,但它可以是一种解决方案。如果您需要重定向到某个页面,请使用onSelect
选项(http://api.jqueryui.com/datepicker/#option-onSelect)
var links = { "2013-09-05": 'http://my-website.com/event/world-domination' };
//...
onSelect: function (dateString) {
if ( links[ dateString ] )
document.location.href = links[ dateString ];
}
答案 2 :(得分:1)
似乎jQueryUI没有提供这样做的方法,但您可以为每个“特殊”日期分配一个第二个类来处理它
return [true, 'date_'+String(y)+String(m)+String(d)+' highlight', tips[i]];
然后您可以添加侦听器以在每个特殊日期被点击时触发
jQuery(document).on('click','.date_201385',function() {
do something;
});