2

我最难移植这个 jsFiddle:http:

//jsfiddle.net/manishma/NCHtH/

JQuery 1.9.1(使用JQuery UI 1.10.3)。

我尝试了明显的,更改liveon,但没有奏效。

我为此花费了太多时间和精力,如果有人可以帮助我,我将不胜感激。谢谢!

4

1 回答 1

6

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

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

在第一次显示之前,它不会构建 datepicker 控件的其余部分。之后,控件的 DOM 结构被正常添加。

正因为如此,$('.ui-weekpicker .ui-datepicker-calendar tr')长度为0somousemovemouseleave处理程序没有附加。

我想出的解决方案是更改选择器以将事件委托给$('.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');
});

这是一个更新的小提琴:http: //jsfiddle.net/NCHtH/19/

于 2013-06-03T11:49:05.957 回答