gpt4 book ai didi

javascript - jQuery Datepicker onSelect 事件获取类

转载 作者:行者123 更新时间:2023-11-28 11:07:03 25 4
gpt4 key购买 nike

当用户单击日期时,我试图获取 jQuery 日期选择器的 beforeShowDay 函数中设置的类。像这样的事情:

$("#calendar").datepicker({
minDate: today,
dateFormat: dateformat,
beforeShowDay: function(date) {
// set all the dates to have reserved class for now
return [true, 'reserved', 'this date reserved'];
},
onSelect: function(date, el){
if ($(el).hasClass('reserved')){
// on click, check if reserved class exists.
console.log('it is reserved!');
} else {
console.log('it is not reserved');
}
}
});

每次点击都会返回“未保留”。如何检查被点击元素的类?

http://jsfiddle.net/sf90zw72/

最佳答案

不幸的是,这比这要困难得多,您获得的 el 参数是一个包含 datePicker 实例的对象,而不是文档中单击的元素

...receives the selected date as text and the datepicker instance as parameters.

该对象中仅包含选定的日期和父 Datepicker 元素,因此您必须使用这些属性来选择元素并检查类。

请注意,在您的示例中,所有日期都将具有类reserved,因为没有条件,但我假设实际代码中有所不同

(function ($) {
$(document).ready(function () {
$("#calendar").datepicker({
dateFormat: 'yyyy-mm-dd',
beforeShowDay: function (date) {
return [true, 'reserved', 'this date reserved'];
},
onSelect: function (date, el) {
var day = el.selectedDay,
mon = el.selectedMonth,
year = el.selectedYear;

var el = $(el.dpDiv).find('[data-year="'+year+'"][data-month="'+mon+'"]').filter(function() {
return $(this).find('a').text().trim() == day;
});

if ( el.hasClass('reserved')){
console.log('it is reserved!');
} else {
console.log('it is not reserved');
}
}
});
});
})(jQuery);

FIDDLE

关于javascript - jQuery Datepicker onSelect 事件获取类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28889828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com