2012-10-01 114 views

回答

1

它在歌剧中似乎也适合我。

在这种情况下尝试,如果你想要这个点击事件,为新创建的元素工作委派事件..

$('form').live('click', '.dpicker', function(){ 
    alert('clicked') 
    $(this).datepicker().focus(); 
}); 

另外,我建议你使用。对()代替.live()作为.live已废弃的jQuery 1.7版本

DEMO

1

更改以下行

$('.dpicker').eq(0).clone().prependTo('#new'); 

$('.dpicker').eq(0).clone().removeClass("hasDatepicker").prependTo('#new'); 

然后它会奏效。

当该元素通过.datepicker();启用日期选择器时,Datepicker将“hasdatepicker”类指定给元素。如果你克隆这个元素,你也可以克隆它的属性。这就是为什么当您拨打.datepicker();时,datepicker插件不会执行任何操作。如果你删除这个类,datepicker将按照新元素的预期工作。

2

您不能(安全地)克隆jQuery小部件 - 它们的状态可能不会被复制。

在克隆它之前,您应该在旧元素上调用.datepicker('destroy'),然后再次在克隆的输入元素上调用.datepicker()以重新初始化它。