我遇到克隆元素的问题,克隆元素后jQuery UI DatePicker不起作用。链接到示例:http://jsfiddle.net/V25qA/1/。
答案 0 :(得分:2)
您无法(安全地)克隆jQuery小部件 - 它们具有可能无法复制的状态。
在克隆之前,您应该在旧元素上调用.datepicker('destroy')
,然后再次在克隆的输入元素上调用.datepicker()
以重新初始化它。
答案 1 :(得分:1)
在歌剧中似乎也适合我。
在这种情况下,如果您希望此click事件适用于新创建的元素,请尝试委派事件。
$('form').live('click', '.dpicker', function(){
alert('clicked')
$(this).datepicker().focus();
});
另外,我建议您使用 .on()而不是.live(),因为.quive在jquery版本1.7之后已弃用
答案 2 :(得分:1)
更改以下行
$('.dpicker').eq(0).clone().prependTo('#new');
到
$('.dpicker').eq(0).clone().removeClass("hasDatepicker").prependTo('#new');
然后它会起作用。
当此元素通过.datepicker();
启用了datepicker时,Datepicker会将“hasdatepicker”类分配给元素。如果克隆此元素,还可以克隆它的属性。这就是为什么当你拨打.datepicker();
时,datepicker插件什么都不做。如果删除此类,则datepicker将在新元素上按预期工作。