我有两个链接,一个带有 id #calendar_arrival_open,另一个带有 #calendar_departure_open。两个链接都控制是否显示包含日历的 div,但在这两种情况下显示的日历都是相同的日历,以避免加载两个相同的日历。我正在尝试使用以下代码在单击链接时切换日历的打开和关闭。
var state = "closed";
if(state == "closed"){
$("#calendar_arrival_open").click(function () {
$("#calendar_box").show();
$("#select_arrival_date").show();
$("#select_departure_date").hide();
state = "arrival_open";
});
$("#calendar_departure_open").click(function () {
$("#calendar_box").show();
$("#select_departure_date").show();
$("#select_arrival_date").hide();
state = "departure_open";
});
}
if(state == "arrival_open"){
$("#calendar_arrival_open").click(function () {
$("#calendar_box").hide();
state = "closed";
});
$("#calendar_departure_open").click(function () {
$("#select_departure_date").show();
$("#select_arrival_date").hide();
state = "departure_open";
});
}
if(state == "departure_open"){
$("#calendar_arrival_open").click(function () {
$("#calendar_box").hide();
$("#select_departure_date").hide();
$("#select_arrival_date").show();
state = "arrival_open";
});
$("#calendar_departure_open").click(function () {
$("#calendar_box").hide();
state = "closed";
});
}
此代码适用于打开日历,但不适用于关闭它。我不明白为什么。如您所见,如果打开“到达日历”并单击出发日历链接,则会出现“出发日历”,反之亦然。但是,如果到达日历打开并且单击了到达日历链接,则日历将关闭。
任何人都可以看到问题吗?这种“状态”方法是处理我需要的最佳方法吗?