1

我可以克隆表,但类 datepicker 在克隆行中不起作用。

我不知道我是否可以使用 find 来获取它。

<table width="100%" border="0" cellspacing="0" cellpadding="0" >
<tr>
    <td>Name</td>
    <td>Location</td>
    <td>From</td>
    <td>To</td>
    <td>Add</td>
</tr>
<tr class="tr_clone">
    <td><input type="text" autofocus placeholder="who" name="who" ></td>
    <td><input type="text" autofocus placeholder="location" name="location" ></td>
    <td><input type="text" placeholder="Start Date" name="datepicker_start" class="datepicker"></td>
    <td><input type="text" placeholder="End Date" name="datepicker_end" class="datepicker"></td>
    <td><input type="button" name="add" value="New" class="tr_clone_add"></td>
</tr>

$(".datepicker").datepicker({
    dateFormat: 'dd/mm/yy'
});


$("input.tr_clone_add").live('click', function() {
var $tr    = $(this).closest('.tr_clone');
var $clone = $tr.clone();
$clone.find(':text').val('');
$clone.find('datepicker_start').addClass("datepicker");    
$tr.after($clone); 
});
4

2 回答 2

1

当您克隆小部件属性时,也不会被复制,我认为没有一个名为的选择器:text,请尝试

$("input.tr_clone_add").live('click', function() {
    var $tr    = $(this).closest('.tr_clone');
    var $clone = $tr.clone(true, true);
    $clone.find('input').val('');
    $clone.find('.datepicker').datepicker({
        dateFormat: 'dd/mm/yy'
    });    
    $tr.after($clone); 
});

演示:小提琴

于 2013-03-22T00:32:38.960 回答
1

在应用 datepicker 之前克隆所需的元素是最安全(也更快)的(您也可以删除 class hasDatepicker):

var $to_clone = $('.tr_clone').first().clone();
$(".datepicker").datepicker({
    dateFormat: 'dd/mm/yy'
});


$("table").on('click', 'input.tr_clone_add', function () {
    var $tr    = $(this).closest('.tr_clone');
    var $clone = $to_clone.clone();
    $clone.find(':text').val('');
    $tr.after($clone);
    $clone.find('.datepicker').datepicker({
        dateFormat: 'dd/mm/yy'
    });
});

http://jsfiddle.net/oceog/yWpBm/

于 2013-03-22T02:12:17.567 回答