Pikaday Datepicker太多的递归/堆栈溢出

时间:2017-02-23 15:02:36

标签: javascript jquery datepicker momentjs pikaday

我在Pikaday

中遇到过这个问题

我有一个简单的选择字段,它运行一些ajax并将一组限制日期传递给pikaday datepicker。但是,重新构建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

上面的codepen在使用

显示单个元素问题的双实例方面做得很好
onSelect: function() {
     console.log('pong')
}

尽管如此,解决方案并没有帮助我解决问题。我真的只是希望我在这里做错了,因为我需要弄清楚这个“错误”。

那就是说,我已经在codepen上运行了这个简单的版本示例。

请注意,每次传递一组新日期时,select字段必须重新构建pikaday。因此,查看操作中的错误的方法是选择下拉选项,通过pikaday-datepicker选择日期,然后再次更改下拉选项并再次使用datepicker。密切注意控制台。

你会看到它运行“Hello Again!”的次数。这会导致datepicker挂起,有时会永久挂起并抛出太多的递归/ Stack Overflow错误。

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

1 个答案:

答案 0 :(得分:0)

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