2

Я пытаюсь использовать noConflict() с bootstrap datepicker, чтобы избежать конфликта с другими плагинами jquery.Вызов noConflict() после инициализации бутстрапа datepicker?

бутстрапом 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:

Упс! Код диапазона дат сам по себе вызывает .datepicker, поэтому вы правы, он сломан, когда в сочетании с noConflict.

На данный момент я предлагаю вызова noConflict после инициализации диапазоне сборщика.

Но как это сделать?

Я попытался это:

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

И я попытался это:

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

Но я не могу заставить его работать. Может ли кто-нибудь просветить меня о том, что я делаю неправильно (или, желательно, как я могу это сделать правильно)?

Update: Для тех, кто спрашивает, как я инициализировать сборщик диапазона:

Там не кажется, код вызова этого специально. Помимо приведенного ниже демо-кода, он использует бутстрап 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" 
}); 
+2

Ваш код ничего не говорит об инициализации выбора диапазона, только datepicker. где вы инициализируете выбор диапазона? –

+0

Я не уверен на 100%. Не существует специального кода для вызова аспекта диапазона. Я думаю, что использование класса .input-daterange может сделать это. –

+0

Зачем ставить этот вопрос? Как я могу улучшить его без объяснения? –

ответ

1

Ваша первая попытка следующие направления владельца точно. Вот где это происходит в ЦСИ: https://github.com/eternicode/bootstrap-datepicker/blob/master/js/bootstrap-datepicker.js#L1357-L1392

код ничего не делает асинхронный, поэтому при вызове .noConflict на следующей строке должно быть сделано, что владелец плагина предложил.

Хотя, глядя на источник, кажется, что какая-то ошибка, вызванная вашей исходной проблемой, теперь исправлена. .datepicker больше не вызывается из класса DateRangePicker.

Смежные вопросы