我使用标准的jQuery Datepicker,我需要根据一些日常状态信息修改每个TD中的文本.我意识到我可以连接“beforeShowDay”事件,但这只允许我修改每个日期的css信息.希望在整个日历上的事件,如“afterRender”等.
解决方法
看起来像
afterShow()
和
onAfterChangeMonthYear()
已经提升了一些增强功能,但是似乎还没有任何工作.
你可以(现在)自己实现…
下载latest uncompressed source v1.8.13 – 参见http://blog.jqueryui.com/2011/05/jquery-ui-1-8-13/并搜索_updateDatepicker:function(inst){然后添加一个新的函数调用.这是我如何布置新功能:
_updateDatepicker: function(inst) { // existing jQueryUI code cut for brevity this._afterShow(inst); },_afterShow: function(inst) { var afterShow = this._get(inst,'afterShow'); if (afterShow) afterShow.apply((inst.input ? inst.input[0] : null),[(inst.input ? inst.input.val() : ''),inst,inst.dpDiv.find('td:has(a)')]); },
我只是将该函数编码为与beforeShow()
相同的签名,但是添加了第3个参数 – < td>元素.
然后,您可以以通常的方式将自己的回调添加到datepicker().
<script type="text/javascript"> $(function() { $('#dp').datepicker({ afterShow: function (input,td) { console.log(td); // needs a browser with a console (Chrome / Firefox+Firebug for example) } }); }); </script> <input type="text" id="dp"/>
注意:我没有做过大量测试,但是在渲染datepicker后似乎被调用.如果不完全符合您的要求,可能需要更多的工作才能满足您的要求.希望它有助于:-)