我正在尝试将 noConflict()
与 Bootstrap 日期选择器一起使用,以避免与其他 jquery 插件发生冲突。
bootstrap datepicker 文档说:
$.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 :
Oops! The date range code, itself, calls .datepicker, so you're right, it's broken when coupled with noConflict.
For now, I suggest calling noConflict after initializing the range picker.
但是我该怎么做呢?
我试过这个:
$('#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"
});
最佳答案
您的第一次尝试是完全按照所有者的指示进行。 这是它在 src 中发生的位置:https://github.com/eternicode/bootstrap-datepicker/blob/master/js/bootstrap-datepicker.js#L1357-L1392
代码不执行任何异步操作,因此在下一行调用 .noConflict 应该会完成插件所有者的建议。
虽然,查看源代码,似乎导致您的原始问题的任何错误现在都已修复。 .datepicker 不再从 DateRangePicker 类中调用。
关于javascript - 初始化 Bootstrap 日期选择器后调用 noConflict()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27408013/