$(function () { toggleTimeLayer(); }); function toggleTimeLayer() { // 시/분 select 옵션 생성 $(".time_layer_wrap").each(function () { const $wrap = $(this); createOptions($wrap.find(".hour"), 24, ""); createOptions($wrap.find(".minute"), 60, ""); }); /** 공통 옵션 생성 함수 */ function createOptions($select, max, unit) { $select.empty(); $select.append(``); for (let i = 0; i < max; i++) { const num = i < 10 ? "0" + i : i; $select.append(``); } } // input 클릭 → 레이어 열기/닫기 $(".time_input").on("click", function () { const $wrap = $(this).closest(".time_layer_wrap"); const $layer = $wrap.find(".time_layer"); $(".time_layer").not($layer).removeClass("active"); // 다른 레이어 닫기 $layer.toggleClass("active"); }); // "확인" 버튼 클릭 → 값 적용 $(".time_layer .btn").on("click", function () { const $wrap = $(this).closest(".time_layer_wrap"); const hour = $wrap.find(".hour").val(); const minute = $wrap.find(".minute").val(); if (hour === "" || minute === "") { alert("시간과 분을 모두 선택해주세요."); return; } $wrap.find(".time_input").val(`${hour}:${minute}`); $wrap.find(".time_layer").removeClass("active"); }); // 외부 클릭 시 레이어 닫기 $(document).on("click", function (e) { if (!$(e.target).closest(".time_layer_wrap").length) { $(".time_layer").removeClass("active"); } }); }