首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pikaday Datepicker递归过多/堆栈溢出

Pikaday Datepicker递归过多/堆栈溢出
EN

Stack Overflow用户
提问于 2017-02-23 23:02:36
回答 1查看 861关注 0票数 1

我在使用Pikaday时遇到了这个问题

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

我在谷歌上搜索了一下,在这件事上找到了一些帮助https://github.com/dbushell/Pikaday/issues/382

代码语言:javascript
复制
// 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

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

代码语言:javascript
复制
onSelect: function() {
     console.log('pong')
}

也就是说,这些解决方案对我的问题没有帮助。我真的希望我在这里做了一些完全错误的事情,因为我需要找出这个"bug“。

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

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

您将看到它运行了多少次"Hello Again!“。这会导致datepicker挂起,有时会永久挂起,并抛出过多的递归/堆栈溢出错误。

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

EN

回答 1

Stack Overflow用户

发布于 2017-02-24 23:18:33

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42419334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档