Ajout d’une nouvelle ligne, la liaison de datepicker à cloumn fonctionne de manière étrange

J’essaie d’append une nouvelle ligne au clic du bouton. Dans ma nouvelle ligne, il y a une zone de texte avec laquelle je veux lier datepicker mais que je ne peux pas. S’il vous plaît aidez-moi à résoudre ce problème.

JavaScript

 $(document).on('click', function() { $('.date').each(function() { $(this).datepicker(); }); }); function addRow(btn) { var parentRow = btn.parentNode.parentNode; var table = parentRow.parentNode; var rowCount = table.rows.length; var lastRow = table.rows[rowCount - 1]; var rowClone = lastRow.cloneNode(true); table.appendChild(rowClone); $('.date', rowClone).datepicker(); // Code to fix the problem } 

Seq1: Add Row => Cliquez sur la zone de texte de newRow, le calendrier apparaît et tout fonctionne correctement.

Seq2: 1. Cliquez sur le document, puis essayez la zone de texte de la ligne d’origine, puis le calendrier s’affiche. 2. Ajouter une nouvelle ligne. 3. Cliquez maintenant sur la zone de texte de la nouvelle ligne, le calendrier ne s’affiche jamais pour sélectionner la date.

Association de JSFiddle pour référence http://jsfiddle.net/wAyhm/9/

C’est ce que vous recherchez:

Comment cloner des éléments liés par un widget jQuery UI?

Violon de travail:

http://jsfiddle.net/Meligy/DKtA6/6/

 window. addRow = function addRow(btn) { var parentRow = btn.parentNode.parentNode; var table = parentRow.parentNode; var rowCount = table.rows.length; var lastRow = table.rows[rowCount - 1]; var lastDatePicker = $('.date', lastRow); var rowClone = $(lastRow).clone(true); var datePickerClone = $('.date', rowClone); var datePickerCloneId = 'test-id' + rowCount; datePickerClone.data( "datepicker", $.extend( true, {}, lastDatePicker.data("datepicker") ) ).attr('id', datePickerCloneId); datePickerClone.data('datepicker').input = datePickerClone; datePickerClone.data('datepicker').id = datePickerCloneId; $(table).append(rowClone); datePickerClone.datepicker(); }