单击按钮后,我有一些 jquery 会将一些 html 添加到“body”元素。在那个 html 中,我有一个 datepicker 输入字段,它拒绝出现在它应该出现的时候。
我在我的应用程序的其他几个地方使用了 ui-datepicker,它运行良好。
我尝试在文档加载时调用 datepicker:
jQuery ->
$('.my-datepicker-class').each ->
input = $(this)
input.datepicker()
并在将新 html 添加到页面的单击事件之后:
$('.my-button').click ->
$('body').ipadoverlay
titleStyle: false
contentWidth: 500
topSpc: true
content: $('#popup-for-' + thing_id).html()
$('.my-datepicker-class').each ->
input = $(this)
input.datepicker()
但采摘者拒绝出现。我的猜测是它与 jquery 何时构建和放置日期选择器有关,但我真的不知道。
如果您有任何想法或可以使用更多信息,请告诉我。
更新 我更改了调用 datepicker() 的方式,使其仅适用于我希望将 datepicker 附加到的元素。
$('.ipadoverlay .date-picker').datepicker()
这消除了 .each => 的第一个问题。
现在它默默地失败了。没有错误或警告。日期选择器根本不显示。
我将开始深入研究 jquery.ui.datepicker.js,看看我是否能弄清楚发生了什么,但如果您对 datepicker 无法响应的原因有任何想法,请告诉我。
更新 2 好的,我更进一步。'hasDatepicker' 类已经附加到我想要添加 datepicker 的元素(这意味着 $('.date-picker').datepicker() 在其他地方被调用,而元素被隐藏和未使用),但是日期选择器没有工作。我通过从元素中删除类并再次调用 .datepicker() 来解决此问题
$('.ipadoverlay .date-picker').removeClass('hasDatepicker')
$('.ipadoverlay .date-picker').datepicker()
现在日期选择器在点击时显示,但选择一个日期并没有做任何事情......非常感谢帮助