测试元素是否已经有 Bootstrap 日期选择器

Test if element already has Bootstrap datepicker

我正在开发一个具有多个实现的相当大的软件平台。以前有一个使用 jQueryUI datepicker 的实现,我现在正在使用 Bootstrap datepicker.

进行界面改造

有没有办法让我测试 Bootstrap 日期选择器是否已经附加到某个元素,比如说这个

<input type="text" id="user-date" class="datepicker"/>

请注意,我不是在询问 Bootstrap datepicker 是否像 . I'm rather asking for a test, similar to this one for jQueryUI datepicker 那样加载。

当您在元素上使用 bootstrap-datepicker 时,它会在 .data("datepicker") 中添加一个对象,因此您可以检查它是否存在并检查 datepicker 是否可见,您可以像这样使用 .data("datepicker").picker 对象

HTML

<input type="text" id="user-date" class="datepicker"/>     

JS

if(!$('#user-date').data('datepicker')){// or $('#user-date').data('datepicker')==null
    console.log('datepicker is not attached');
}   
$('#user-date').datepicker();
$('#user-date').focus();//set focus to display datepicker
if($('#user-date').data('datepicker')){
    console.log('datepicker is already attached');
    if($('#user-date').data('datepicker').picker.is(":visible")){
        console.log("datepicker is visible");
    }
}

https://jsfiddle.net/weso8a96/