jQuery UI datepicker реинстанция блюз - PullRequest
0 голосов
/ 07 сентября 2010

У меня возникли проблемы со скриптом datepicker пользовательского интерфейса jQuery, и я надеюсь, что кто-то здесь сможет помочь.

Мне нужно иметь возможность динамически создавать элементы, для которых требуется плагин datepicker, затем уничтожать их, а затем заново создавать. (Я активно использую jTemplates для этого.)

К сожалению, средство выбора даты, похоже, работает только при первом создании элемента, даже если он повторно создан.

Например, допустим, я динамически вставил следующий HTML в DOM с помощью jTemplates:

<div id="dateWrapper">
   <input type="text" id="dateChooser" />
</div>

Затем я создаю экземпляр средства выбора даты:

$("#dateChooser").datepicker();

Это работает как шарм.

Однако, если я затем удалю элемент dateWrapper из DOM ...

$("#dateWrapper").remove();

... и затем повторно вставьте его во второй раз, используя jTemplates, точно так же, как и раньше, второй вызов для создания экземпляра DatePicker ...

$("#dateChooser").datepicker();

... больше не работает.

Я пытался вызвать метод уничтожения datepicker перед удалением #dateWrapper из DOM, и я даже пытался вручную удалить # ui-datepicker-div, который вставляется в нижнюю часть DOM при первом создании экземпляра datepicker. Однако ни один из них не устранил проблему.

У кого-нибудь есть другие идеи? Я не хотел бы отказываться от выбора даты, так как это хороший маленький календарь, и я уже активно использую jQuery UI. Однако для меня это может оказаться решающим фактором, если я не смогу найти обходной путь.

Спасибо (заранее) за вашу помощь.

Travis

1 Ответ

2 голосов
/ 07 сентября 2010

Я считаю, что вы должны использовать метод datepicker('destroy') для удаления datepicker, например:

var date = $('#date');

date.datepicker();

$('#create').click(function(){
    date.datepicker();

    return false;
});

$('#destroy').click(function(){
    date.datepicker("destroy");

    return false;
});

См .: http://jsfiddle.net/ESX3P/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...