0

Я загрузил пользовательский указатель даты в встроенном режиме. Так что я создаю кнопки буксировки для загрузки и удаления. Но когда я перезагружаю его снова. Датчик отобразил, но не может выбрать какой-либо день или месяц изменения, а также сообщение об ошибке firebug.Перезагрузка JQuery UI datepicker не работает во встроенном режиме

только простой код: ЯШ:

var panelContents1 = $('<div />',{'id':'igto1_WH'}).append($('<div />',{'id':'igto1_whDatePicker'}).datepicker()); 

$('#load').click(function(){ $('#loadDiv').html(panelContents1); }) 
$('#empty').click(function(){ $('#loadDiv').empty(); }) 

и HTML:

<p id="load"> load </p> 
<p id="empty"> empty </p> 
<div id="loadDiv"></div> 

Большое спасибо !!

Мое решение:

$('#load').click(function(){ 
    $('#loadDiv').html(panelContents1).find('#igto1_whDatePicker').datepicker(); 

     }) 

$('#empty').click(function(){ 
      $('#igto1_whDatePicker').datepicker('destroy'); 
    $('#loadDiv').empty(); 
     }) 

var panelContents1 = $('<div />',{'id':'igto1_WH'}).append($('<div />',{'id':'igto1_whDatePicker'})); 
+0

Вам нужно несколько датпикеров или всегда один видимый? – elektronikLexikon

+0

несколько датпикеров! – qinHaiXiang

ответ

0

Причина этого в вашем демо, потому что вы создаете переменную panelContents1 и добавляет его в DOM, то $('#loadDiv').empty(); вызов разрушает жизненно важные элементы, что потребности Datepicker , Позже вы добавляете эту переменную той же переменной (набор элементов), вот корень всех ваших проблем здесь.

Как исправить, создавая DatePicker внутри click обработчика будет создать новую каждый раз, и не имеет эту проблему с добавлением А теперь разбитых один, как это:

$('#load').click(function(){ 
    var panelContents1 = $('<div />',{'id':'igto1_WH'}).append($('<div />',{'id':'igto1_whDatePicker'}).datepicker()); 
    $('#loadDiv').html(panelContents1); 
}); 

You can test it out here. В основном просто создайте новый элемент при добавлении, а не тот, на который повлияли предыдущие взаимодействия с DOM, такие как ваша демонстрация. Для тех, кто делает двойной прием по вышеуказанному коду, .html(jQueryObject) is a shortcut for .empty().append(jQueryObject).

+0

Ваша структура кода намного элегантнее. – qinHaiXiang

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