Jquery ui Jquery selectBox与Jquery ui日期选择器冲突

Jquery ui Jquery selectBox与Jquery ui日期选择器冲突,jquery-ui,datepicker,jquery-selectbox,Jquery Ui,Datepicker,Jquery Selectbox,如果我使用jquery selectBox插件,我的datepicker插件不会关闭。我使用的代码是: jQuery( document ).ready(function( $ ) { $(".date-field input").datepicker ({ dateFormat: "yy/mm/dd", minDate: "2012/03/01", maxDate: "0d", dayNamesMin: [ "Dom", "Seg", "Ter", "

如果我使用jquery selectBox插件,我的datepicker插件不会关闭。我使用的代码是:

jQuery( document ).ready(function( $ )
{
  $(".date-field input").datepicker
  ({ 
    dateFormat: "yy/mm/dd",
    minDate: "2012/03/01",
    maxDate: "0d",
    dayNamesMin: [ "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab" ],
    dayNames: [ "Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado" ],
    monthNames: ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],
    showOptions: { direction: "up" },
    showAnim: "drop",
    duration: 300
  });

  $(".select-field select").selectbox({effect:"slide",speed:400});

});
我正在使用最新的jquery库和唯一必要的插件来使用具有删除效果的datepicker

问题是如果我使用selectbox,日期选择器不会在单击out时关闭。我已经试过了,但没有成功。如果我在Datepicker中选择了一个日期,它将正常关闭


OBS在页面上我有两个日期选择器字段。

Selectbox插件通过取消
上的冒泡事件而导致此问题

在selectbox.js中找到以下块:

$("html").on('mousedown', function (e) {
    e.stopPropagation();
    $("select").selectbox('close');
});

你有两个选择。要么删除
e.stopPropagation()行或添加
$(“.date字段输入”).datepicker(“隐藏”)位于其下方。

出现问题的原因是,e.StopperPropagation from selectbox阻止鼠标向下传播到父对象(从selectbox中使用的“html”到日期选择器中使用的父对象“文档”)

这个问题可以通过改变受日期选择器影响的元素来解决。不是将事件附加到“文档”,而是将其附加到“html”元素(事件将被执行,因为e.stopPropagation不会停止当前级别上的传播-两个事件都将附加到“html”元素)

要解决此问题,可以使用以下代码:

   if (!!$.datepicker) {
        $(document).unbind('mousedown', $.datepicker._checkExternalClick);
        $('html').mousedown($.datepicker._checkExternalClick);
    };
它可以在任何js文件中使用(jquery.selectbox.js和jquery-ui.js不需要更改)