【问题标题】:Calling noConflict() after initialising bootstrap datepicker?初始化引导日期选择器后调用 noConflict()?
【发布时间】:2014-12-10 18:13:39
【问题描述】:

我正在尝试将noConflict() 与引导日期选择器一起使用,以避免与其他 jquery 插件发生冲突。

引导日期选择器文档说:

$.fn.datepicker.noConflict provides a way to avoid conflict with other jQuery datepicker plugins:

var datepicker = $.fn.datepicker.noConflict(); // return $.fn.datepicker to previously assigned value
$.fn.bootstrapDP = datepicker;                 // give $().bootstrapDP the bootstrap-datepicker functionality

但这对我不起作用,因为我使用的是日期范围。代码作者有this to say

哎呀!日期范围代码本身调用 .datepicker,所以你是对的, 与 noConflict 结合使用时会损坏。

目前,我建议在初始化范围之后调用 noConflict 选择器。

但是我该怎么做呢?

我试过这个:

$('#bookingform .input-daterange').datepicker({
    ...options excluded for brevity...
});
datepicker = $.fn.datepicker.noConflict();  

我已经试过了:

$('#bookingform .input-daterange').datepicker({
    ...options excluded for brevity...
}).noConflict();

但我似乎无法让它工作。任何人都可以告诉我我做错了什么(或者最好是我如何做对)?

更新:对于那些询问我如何初始化范围选择器的人:

似乎没有专门调用它的代码。除了下面的演示代码,它依赖于 bootstrap js。我认为范围方面可能基于.input-daterange 类,但我不确定。

这是演示代码:

<div class="input-daterange input-group" id="datepicker">
    <input type="text" class="input-sm form-control" name="start" />
    <span class="input-group-addon">to</span>
    <input type="text" class="input-sm form-control" name="end" />
</div>

$('#sandbox-container .input-daterange').datepicker({
    format: "dd/mm/yyyy"
});

【问题讨论】:

  • 您的代码没有提到初始化范围选择器,只有日期选择器。你在哪里初始化范围选择器?
  • 我不是 100% 确定。没有特定的代码来调用它的范围方面。我认为使用类 .input-daterange 可能会做到这一点。
  • 为什么要把这个问题记下来?不解释怎么改进?
  • 研究范围选择器是如何初始化的,并按照作者的说明使用该信息:“目前,我建议在初始化范围选择器之后调用 noConflict 。 " 你还没有这样做,所以你还没有做足够的研究。
  • 我认为“在初始化 rangepicker 之后”指的是 datepicker 初始化行:$('#bookingform .input-daterange').datepicker(); 这是我可以控制的唯一相关代码。除了更改引导程序源代码之外,这对于具有我技能水平的人来说不是一个好主意。无论如何,我不认为这就是作者的意思。

标签: javascript jquery twitter-bootstrap jquery-ui bootstrap-datepicker


【解决方案1】:

您的第一次尝试是完全按照所有者的指示进行。 这是它在 src 中发生的地方:https://github.com/eternicode/bootstrap-datepicker/blob/master/js/bootstrap-datepicker.js#L1357-L1392

代码不会做任何异步操作,因此在下一行调用 .noConflict 应该已经完成​​了插件所有者的建议。

不过,查看源代码,似乎导致您最初问题的任何错误现在都已修复。 .datepicker 不再从 DateRangePicker 类中调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-10
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多