javascript - 是否可以为多个实例重用 flatpickr 窗格的 DOM?
问题描述
我们使用flatpickr来提供一个统一的界面来编辑日期。在一个例子中,有一个包含许多(数百)行的表,每一行都有一个日期输入,我们使用 flatpickr。
鉴于一次只会打开一个 flatpickr,是否有可能避免在 DOM 中创建数百个隐藏窗格,而是为所有这些窗格使用一个?
解决方案
所以我们在 AngularJS 应用程序中遇到了类似的问题。我们发现的解决方法是将 FocusHandler 添加到输入字段,在该处理程序中创建 flatpickr 实例,然后调用.open()
该实例。
handleFocus = () => {
const config = {...}
this.flatpickrInstance = flatpickr(this.input, config);
this.flatpickrInstance.open();
};
为了清理,我们还在输入字段中添加了一个 BlurHandler 以调用.destroy()
保存的 flatpickr 实例。这里唯一的问题是这.destroy()
将清除输入字段的值,因此我们需要在调用 destroy 后立即设置值,如下所示:
handleBlur = () => {
const val = this.flatpickrInstance.input.value;
this.flatpickrInstance.destroy();
this.input.value = val
};
推荐阅读
- html - 边框弯曲的css - 带有弯曲端的圆
- python - 如何用python和thrift处理Broken pipe
- c++ - 为什么第 32769 次插入在 std::unordered_set 中失败?
- excel - 需要 VBA 代码效率建议
- jquery - 在 Bxslider 上设置 moveSlides 2
- c# - 如何在 ubuntu 18.04 上配置 vim/nvim 以使用自动完成功能进行 c# .net-core 开发
- java - 如何完成不是字节数组输入流的异步 HTTP 客户端输入流?
- c - While-Loop 中的错误不断计数超出条件
- c# - C# System.IO.InvalidDataException 压缩文件
- html - 无法水平对齐 div