0

我在克隆元素时遇到问题,jQuery UI DatePicker 在克隆元素后不起作用。示例链接:http: //jsfiddle.net/V25qA/1/

4

3 回答 3

2

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

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

于 2012-10-01T07:24:44.597 回答
1

更改以下行

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

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

然后它将起作用。

当该元素通过 启用日期选择器时,Datepicker 将“hasdatepicker”类分配给该元素.datepicker();。如果你克隆这个元素,你也克隆了它的属性。这就是为什么 datepicker 插件在调用.datepicker();. 如果您删除此类 datepicker 将在新元素上按预期工作。

于 2012-10-01T07:20:32.307 回答
1

在歌剧中对我来说似乎也很好。

在这种情况下,如果您希望此单击事件适用于新创建的元素,请尝试委托该事件。

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

另外我建议您使用.on()而不是 .live() 因为 .live 从 jquery 1.7 版开始已被弃用

演示

于 2012-10-01T07:17:12.110 回答