我最难移植这个 jsFiddle:http:
//jsfiddle.net/manishma/NCHtH/
到JQuery 1.9.1
(使用JQuery UI 1.10.3
)。
我尝试了明显的,更改live
为on
,但没有奏效。
我为此花费了太多时间和精力,如果有人可以帮助我,我将不胜感激。谢谢!
问问题
2997 次
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')
长度为0
somousemove
和mouseleave
处理程序没有附加。
我想出的解决方案是更改选择器以将事件委托给$('.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 回答