1

我在Pikaday遇到过这个问题

我有一个简单的选择字段,它运行一些 ajax 并将一组停电日期传递给 pikaday 日期选择器。但是,重新构建 pikaday 的 datepicker 会引发重新实例化循环错误,当您在 DOM 中两次在同一元素上重新构建 pikaday 时会发生这种错误。

我用谷歌搜索并找到了一些关于此事的帮助 https://github.com/dbushell/Pikaday/issues/382

// Destroy it at some point in the future - 
// NOT really working or helping the loop issue
$('.somefield').pikaday('destroy');

这是最有帮助的

https://github.com/dbushell/Pikaday/issues/429

http://codepen.io/thephpjo/pen/pjqavp?editors=1111

上面的代码笔很好地展示了使用单元素问题的双实例

onSelect: function() {
     console.log('pong')
}

也就是说,解决方案对我的问题没有帮助。我真的只是希望我在这里做错了什么,因为我需要找出这个“错误”。

也就是说,我有一个在 codepen 上运行的简单版本示例。

请注意,每次选择字段都必须重新构建 pikaday,因为将通过一组新的日期。因此,查看实际错误的方法是选择一个下拉选项,通过 pikaday-datepicker 选择一个日期,然后再次更改下拉选项并再次使用 datepicker。密切关注控制台。

您会看到它运行了多少次“Hello Again!”。这会导致 datepicker 挂起,有时是永久挂起,并引发 Too many recursion / Stack Overflow 错误。

简化 pikaday 以显示错误:http ://codepen.io/anon/pen/NpWRZL?editors=1111

4

1 回答 1

0

所以事实证明,避免这个愚蠢的错误的方法是完全 .remove() 你应用 pikaday datepicker 的元素,然后通过 .append() 重建元素,瞧,它被正确重置并且可以是一个新的 datepicker应用。

于 2017-02-24T15:18:32.863 回答