ID #calendar_arrival_open と #calendar_departure_open の 2 つのリンクがあります。どちらのリンクも、カレンダーを含む div を表示するかどうかを制御しますが、どちらの場合も、2 つの同一のカレンダーが読み込まれないように、表示されるカレンダーは同じカレンダーです。次のコードを使用して、リンクがクリックされたときにカレンダーの開閉を切り替えようとしています。
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";
});
}
このコードは、カレンダーを開くには機能しますが、閉じるには機能しません。理由がわかりません。ご覧のとおり、「到着カレンダー」を開いて出発カレンダーのリンクをクリックすると、「出発カレンダー」が表示され、その逆も同様です。ただし、到着予定表が開いているときに到着予定表のリンクをクリックすると、予定表が閉じます。
誰でも問題を見ることができますか?この「状態」メソッドは、必要なものを処理するのに最適ですか?