所以我目前正在开发一个包含旅舍预订系统的小型网站。我一直在使用Javascript制作网站的可用性日历。可用性日历的目的是向成员显示该日期宿舍的可用性(将从数据库中提取并且很可能存储在JSON数组中),然后允许他们在界面上选择日期范围。在这个阶段,我有基本的工作,但是当我调用函数changeMonth()在几个月之间更改时,能够选择日期范围并自动更新相应的字段。
所以问题是,当我使用"<"更改月份时和">"按钮日历的新瞬间不会正确更新字段。
function changeMonth(dir){
currMonth += dir;
if(currMonth > 11)currMonth = 6;
if(currMonth < 6)currMonth = 11;
$('#calendar_table').remove();
drawMonth(currMonth, 2014);
}
这是changeMonth()函数;到目前为止,我只想查看6月至11月的月份。要获取日历的新实例,我删除前一个并绘制一个新实例。 最新版本的日历可在此处jsfiddle.net
获取我愿意接受替代方法的建议,以实现我目前正在更有效地完成同样的任务,我已经从jQuery UI中查看了Datepicker但我无法找到方法实现我的目标。
答案 0 :(得分:0)
问题是,如果你重新绘制日历,你的&#39; a&#39;上的事件监听器。迷路了。
更改此内容:
$( "a" ).on( "click", function() { //...
进入:
$( "#booking_calendar" ).on( "click", "a", function() { //...
演示: http://jsfiddle.net/hZssN/76/
引用jQuery文档http://api.jquery.com/on/
事件处理程序仅绑定到当前选定的元素;他们 在您的代码调用.on()时页面上必须存在。 要确保元素存在且可以选择,请执行事件 绑定在文档就绪处理程序中的元素 页面上的HTML标记。如果将新HTML注入页面, 选择元素并在新HTML之后附加事件处理程序 放入页面。或者,使用委派事件来附加事件 处理程序,如下所述。