局部刷新导致组件失效

组件:是bootstrap的datetimepicker组件

 $(".form_datetime").datetimepicker({
        format: 'yyyy-mm-dd hh:ii'
    });
    
    

通过这样绑定。

但是当我局部刷新日历选择器的时候,却失效了

请问这个该怎么办?

鉴于我说的不是太明白,我补充了一下问题
补充1:

日历选择器(大致结构如下)
<div id="datePicker" class="form_datetime">
<input class="form-control" size="16" type="text" value="">
</div>

组件绑定如下:

  $(".form_datetime").datetimepicker({
    format: 'yyyy-mm-dd hh:ii'
});

局部刷新如下:在点击一个按钮时,通过remove和append对日历进行刷新。
clipboard.png

目前有了进展:

clipboard.png

这样是有效的,但是我感觉这样做好像不太好。。。有更好的办法吗?

阅读 3.3k
3 个回答

不太懂你的代码具体是怎么样,但是看上去就是你刷新了组件,但是其日历实例生成是在组件外部,然后刷新组件时候DOM更新,导致实例化失效。
那么解决方案大致有二:1.刷新组件时手动再次实例化,但是这样是对整体逻辑的破坏;2.在组件内部渲染完成后进行实例化,但是可能根据不同框架和写法是不一样的。

不清楚你具体怎么做的,我觉得有可能刷新后,原DOM绑定的事件随之失效了,而新DOM并没有绑定,可以用jquery的 on方法
然后我觉得这个input条件选择最好不要去刷新

新手上路,请多包涵

局部刷新完成后再次重新绑定试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题