[编辑]
Here's a jsFiddle with the issue.
[/编辑]
我正在使用datepicker(jQuery UI)的网站上工作。
在datepicker
旁边,如果用户从time dropdown
选择工作日或周末,则需要更改datepicker
。
我已经编写了这段代码,试图从datepicker中获取ui-datepicker-week-end
类来测试它是否是一个周末,但我根本无法得到console.log
。
$('.ui-datepicker').on('click', 'tr', function() {
console.log($(this));
});
Here's the dev site目前的情况。我认为问题是datepicker
的HTML是用jQuery添加的,因此.on()
不知道它是否可以用来获取类?我知道.live()
会做到这一点,但现在我相信这已经贬值了。
有关如何通过点击td
答案 0 :(得分:1)
交换语法。 on()
应绑定到动态内容的最近的静态父级:
$('tr').on('click', '.ui-datepicker', function() {
console.log($(this));
});
答案 1 :(得分:1)
试试这个:
$(document).on('click', '.ui-datepicker td', function() {
console.log(this.className);
});
其中#date
是页面加载时文档中可用的静态元素( datepicker )并将点击事件绑定到.ui-datepicker
的td上,那么您可以获取日历中单击的td的类名。
答案 2 :(得分:1)
语法很好,但是你可能在初始化datepicker之后但之前没有绑定事件。
确保您在$('.yourClass').datepicker()
之前$('.ui-datepicker').on...
。{/ p>
在console.log($('.ui-datepicker').length)
之前执行.on()
会告诉您是否初始化了日期选择器。
如果它不起作用,它意味着(但我不这么认为).ui-datepicker
也是动态的。您必须定位父母:
$('.parent').on('click', '.ui-datepicker tr', function(){});
jQuery UI似乎停止传播,因此无法绑定点击事件。
但它有一个选项,允许在选择日期时绑定事件:
http://api.jqueryui.com/datepicker/#option-onSelect
初始化datepicker时将其传递给选项对象。
最好使用此功能,因为您还可以使用键盘选择日期(因此不会触发任何点击)。
答案 3 :(得分:-1)
更改为
$('.ui-datepicker tr').on('click', function() {
console.log($(this));
});