在jquery ui日期选择器中显示其他月份
我需要在我的jQueryUI日期选择器中将其他月份显示为“-”在jquery ui日期选择器中显示其他月份,jquery,jquery-ui,datepicker,jquery-ui-datepicker,Jquery,Jquery Ui,Datepicker,Jquery Ui Datepicker,我需要在我的jQueryUI日期选择器中将其他月份显示为“-” $( "#datepicker" ).datepicker({ showOtherMonths: true }); 上面的代码显示了其他月份的日期。但是,我需要将其他月份的日期显示为“-” 例如 请任何人帮忙。我检查了jQueryUI的日期选择器控件中使用的CSS。他们使用classui priority secondary表示其他月份的日期 因此,您可以使用jQuery定位使用该特定类的元素,并将HTML替换为-并将其
$( "#datepicker" ).datepicker({
showOtherMonths: true
});
上面的代码显示了其他月份的日期。但是,我需要将其他月份的日期显示为“-”
例如
请任何人帮忙。我检查了jQueryUI的日期选择器控件中使用的CSS。他们使用class
ui priority secondary
表示其他月份的日期
因此,您可以使用jQuery定位使用该特定类的元素,并将HTML替换为-
并将其居中
我尝试了以下方法,效果很好
$('.ui datepicker calendar.ui priority secondary').html('-').css('text-align','center')
希望有帮助
更新:
因为我只使用
Firebug
控制台检查了它,所以没有看到它不会在正确的时间应用的场景。已经指出了这一点,并且有了一个有效的解决方案。我找不到任何东西可以让你控制显示在“其他月份”单元格中的文本,但你可以绕着它胡乱转
古甘尼山。T在正确的轨道上。但棘手的部分是在正确的时间应用变化。beforeShow
和onChangeMonthYear
事件是在显示新月份之前触发的,并且这些事件的版本在之后。在这种情况下,我通常的技巧是使用零超时,这可以有效地让您在浏览器再次获得控制权并且在当前JavaScript块完成运行之后,将要调用的函数排队。所以,像这样的事情应该可以做到:
function ickyHyphenKludge(inst) {
setTimeout(function() {
inst.dpDiv.find('.ui-datepicker-other-month span.ui-state-default').html('-');
}, 0);
}
$("#datepicker").datepicker({
showOtherMonths: true,
selectOtherMonths: false,
beforeShow: function(input, inst) {
ickyHyphenKludge(inst);
},
onChangeMonthYear: function(year, month, inst) {
ickyHyphenKludge(inst);
}
});
演示:
这很难理解,也很难闻,但它可以工作,它应该很坚固,我想不出任何其他方法。问题在于,在正确的时间应用,datepicker中的HTML会在每个月发生变化时重新生成(包括初始显示)因此,在jQueryUI使用HTML完成后,需要一些技巧来获取连字符。但是在正确的轨道上获得+1。接得好!我用firebug控制台检查它。因为它被应用在已经渲染的日历上,所以我很激动;)谢谢