【问题标题】:Jquery UI Datepicker don't work after clone element [closed]Jquery UI Datepicker在克隆元素后不起作用[关闭]
【发布时间】:2012-09-22 00:52:10
【问题描述】:

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

【问题讨论】:

  • 它适用于我,在哪个浏览器中?
  • 我的浏览器是 Opera 12.02。请在克隆元素后单击第一个输入,然后单击克隆的元素。

标签: jquery user-interface datepicker clone


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我在歌剧中似乎也很好。

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

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

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

    DEMO

    【讨论】:

      【解决方案3】:

      更改以下行

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

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

      然后就可以了。

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

      【讨论】:

        猜你喜欢
        • 2012-12-21
        • 1970-01-01
        • 2015-12-15
        • 1970-01-01
        • 2019-02-02
        • 2013-02-14
        • 2016-04-08
        • 1970-01-01
        • 2014-01-04
        相关资源
        最近更新 更多