处理 jQueryUI Datepicker for Bootstrap 下拉菜单的点击事件

Posted

技术标签:

【中文标题】处理 jQueryUI Datepicker for Bootstrap 下拉菜单的点击事件【英文标题】:Handle on click event of jQueryUI Datepicker for Bootstrap drop-down menu 【发布时间】:2014-09-02 04:44:27 【问题描述】:

我有一个 Bootstrap 下拉菜单。因为我有一个用于选择日期的字段。我已停止下拉菜单事件的事件传播。

当我选择日期时,会在下拉菜单中的输入字段中选择相应的日期。菜单状态在此活动中也保持打开状态。当我从该日期选择器控件中更改月份和年份时,下拉菜单消失了。在这种特殊情况下,我如何处理日期选择器控件的单击事件。

html 代码:

<div class="dropdown keep-open">
    <!-- Dropdown Button -->
    <button id="dLabel" role="button" href="#"
       data-toggle="dropdown" data-target="#" 
       class="btn btn-primary">
        Dropdown <span class="caret"></span>
    </button>

    <!-- Dropdown Menu -->
    <ul id="abc" class="dropdown-menu" role="menu" aria-labelledby="dLabel">
        <li><input type="text" id="date" name="date" ng-model="date"/>
        </li>
    </ul>
</div>

javascript

$(function()
    $("#date").datepicker( changeMonth: true,
                changeYear: true,);
);

$("#abc").click(function (event) 
        event.stopPropagation();
);

您可以在这里看到实际问题: http://jsfiddle.net/ajinkya34/PWN8h/

【问题讨论】:

【参考方案1】:

这很简单。你只需stopPropagation#ui-datepicker-div

$("#abc, #ui-datepicker-div").click(function (event) 
    event.stopPropagation();
);

【讨论】:

是的,它确实适用于小提琴。不知何故无法使用我创建的角度指令。 你能以某种方式发布它吗?在任何主机上?【参考方案2】:

如果你创建了一个角度指令,你可以在你的链接函数里面做这个指令来解决问题。

// Stop event bubbling in case click is on date picker div....
var widg = $( element ).datepicker("widget");
widg.click(function(e)
  e.stopPropagation();
);

【讨论】:

以上是关于处理 jQueryUI Datepicker for Bootstrap 下拉菜单的点击事件的主要内容,如果未能解决你的问题,请参考以下文章

jqueryui datepicker失效

jqueryUI 日历 datepicker

jQueryUI 内联 DatePicker 直到我更改月份后才起作用

样式化 jQueryUI DatePicker

如何使用 jqueryui 在表单中使用 datepicker?

获取jQueryUI的datepicker中范围之间的天数