JQuery: запуск нескольких DatePicker на динамически создаваемых входах - PullRequest
0 голосов
/ 27 марта 2012

Я пытаюсь и не могу добавить средство выбора даты для входов, которые создаются динамически.

У них разные идентификаторы, и я специально нацеливаюсь на новый ввод и вызываю указатель даты.

В приведенном ниже примере с jsFiddle он работает только для 2-го входа (первый вызывается с помощью DatePicker) и после этого не работает для других.

Вот jsFiddle: http://jsfiddle.net/TJfbc/1/ Нажмите знак плюс, чтобы добавить больше.

Примечание: я знаю, что у первого элемента не будет указателя даты.

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Вот альтернатива очиститель

$(function() {
    //append one handler to the parent to detect append actions
    $('.action_items').on('click', '.expand', function() {
        var $el = $(this);
        $el.parent()
            .clone()
            .appendTo($el.closest('.action_items'))
            .find('input')
            .removeClass('hasDatepicker')
            .each(function () {
                newName = this.name.slice(0,6) + (parseInt(this.name.slice(6)) + 1);
                this.name = newName;
                this.id = newName;
             })
            .datepicker();

        //change text, remove original handler, add the remove handler
        $el.text('-').off('click').on('click',function(){
            $(this).parent().remove();
        });
    })
});​
0 голосов
/ 27 марта 2012

http://jsfiddle.net/TJfbc/27/

Вам нужно "обновить" предыдущее текстовое поле, в котором уже есть класс hasDatepicker, прежде чем вы сможете инициализировать новое

new_action_item.find('.dpDate').removeClass('hasDatepicker').datepicker()

Улучшение читаемости:

  • Нет необходимости повторно вызывать $ () для new_action_item, так как clone () возвращает уже объект jQuery
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...