jquery - 在 Datepicker JQuery UI (1.10.x) 和 JQuery (1.9.x) 中突出显示一整周

标签 jquery jquery-ui datepicker highlight

我在移植这个 jsFiddle 时遇到了最困难的时刻:

http://jsfiddle.net/manishma/NCHtH/

JQuery 1.9.1(使用 JQuery UI 1.10.3)。

我尝试了显而易见的方法,将 live 更改为 on,但这不起作用。

我在这方面花费了太多的时间和精力,如果有人能帮助我,我将不胜感激。谢谢!

最佳答案

问题是,由于我无法理解的原因,构建日期选择器时 jQueryUI 发生了变化。在您首次调用创建日期选择器时,jQueryUI 仅构建以下内容:

<div id="ui-datepicker-div" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-weekpicker"></div>

在第一次显示之前,它不会构建日期选择器控件的其余部分。之后控件的 DOM 结构就正常添加了。

因此,$('.ui-weekpicker .ui-datepicker-calendar tr') 的长度为 0,因此 mousemovemouseleave 处理程序未附加。

我想出的解决方案是更改选择器以将事件委托(delegate)给 $('.ui-weekpicker') (并将 .live() 更改为.on()):

$('.ui-weekpicker').on('mousemove', 'tr', function () {
    $(this).find('td a').addClass('ui-state-hover');
});
$('.ui-weekpicker').on('mouseleave', 'tr', function () {
    $(this).find('td a').removeClass('ui-state-hover');
});

这是更新的 fiddle :http://jsfiddle.net/NCHtH/19/

关于jquery - 在 Datepicker JQuery UI (1.10.x) 和 JQuery (1.9.x) 中突出显示一整周,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16887722/

相关文章:

javascript - 仅在页面加载时检索一次数据

asp.net-mvc-3 - 无法设置模型 MVC 属性

python - 将字符串日期转换为时间戳并返回 python

javascript - 减少引导日期选择器结束日期

javascript - 此导航栏上实现了哪些功能?

javascript - 自动滚动不工作

jquery - 如果显示 :none 如何删除类颜色框

jquery - 对话框运行 1 秒后消失?

javascript - 如何在reactjs中将数据从子组件传递到父组件

jquery - 日期选择器显示在下拉框后面