我有一個日期選擇器的字段。我想知道它是否開放。我試過了:檢查日期選擇器是否打開
$("#filter_date").datepicker("widget").is(":visible")
但它總是返回true。
我該如何檢查它是否打開?
我有一個日期選擇器的字段。我想知道它是否開放。我試過了:檢查日期選擇器是否打開
$("#filter_date").datepicker("widget").is(":visible")
但它總是返回true。
我該如何檢查它是否打開?
這可能是過去的一個可能的錯誤。現在,這個解決方案
$("#filter_date").datepicker("widget").is(":visible")
作品完美
關閉我的頭頂,我能想到使用的日期選擇器控制切換類(或標識)中定義的beforeShow和onClose事件的地方,並檢查它的存在,以確定日期選擇控件是否是是否開放。
只需設置:
#ui-datepicker-div { display: none; }
在CSS文件和你的代碼:
$("#filter_date").datepicker("widget").is(":visible")
將正常工作!
var datePickerStyle = $('.datepicker').attr('style');
var noneStyle = 'display: none;';
if(datePickerStyle.indexOf(noneStyle) != -1){
console.log('shown');
} else {
console.log('not shown');
}
訪問日期選擇器的樣式屬性,並在日期選擇器是隱藏的樣式進行比較按鈕。 isCalendarVisible
更新'show'&相應地'隱藏'datepicker。我檢查'isCalendarVisible'的值以手動打開或關閉它。
function toggleCalendar() {
if (isCalendarVisible) {
$(".datepicker .add-on").datepicker("hide");
} else {
$(".datepicker .add-on").datepicker("show");
}
}
當你需要測試元素是否可見,並且你在phantomJS上運行測試(.is(「:visible」)不適用於我)時, – 2015-07-15 22:41:55
var isCalendarVisible;
$(".datepicker).datepicker().on("show", function() {
isCalendarVisible = true;
}).on("hide", function() {
isCalendarVisible = false;
});
我已經用這種方法進行日期選擇的肘上的點擊:(:無顯示)
第一次將datepicker附加到元素時,它是不可見的,但可見返回true。該元素還沒有顯示無風格,但它仍然隱藏,不幸的是,在您的代碼中沒有檢測到。仍然是+1。 :) – mikong 2011-08-04 07:25:10
啊,在第一次加載時,你應該檢查它是否爲空。 – mikong 2011-08-04 07:31:03
不適合我。 Both:empty和:visible始終返回true - 在第一次打開日期選擇器之前並始終返回。 – AyCabron 2017-11-01 23:52:23