繁体   English   中英

页面加载后动态添加jquery datepicker

[英]Add jquery datepicker dynamically after page load

单击按钮后,我有了一些jquery,它将向'body'元素添加一些html。 在该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的时间有关,但我真的不知道。

让我知道您是否有任何想法或可以使用更多信息。

UPDATE我更改了调用datepicker()的方式,使其仅适用于我希望将datepicker附加到的元素。

$('.ipadoverlay .date-picker').datepicker()

这消除了.each =>的第一个问题。
现在它默默地失败了。 没有错误或警告。 日期选择器根本不会显示。

我将开始研究jquery.ui.datepicker.js,以查看是否可以解决问题,但是如果您有任何想法,为什么datepicker无法响应,请告诉我。

更新2好的,我又走了一步。 类'hasDatepicker'已经附加到我要添加datepicker的元素上(这意味着$('。date-picker')。datepicker()在其他地方被调用,而该元素被隐藏且未使用),但是datepicker无效。 我通过从元素中删除类并再次调用.datepicker()来解决此问题

$('.ipadoverlay .date-picker').removeClass('hasDatepicker')
$('.ipadoverlay .date-picker').datepicker()

现在,单击时将显示日期选择器,但是选择日期没有任何作用...非常感谢您的帮助

您需要使用粗箭头。 您对“ this”的使用会失去上下文。

jQuery ->
  $('.my-datepicker-class').each => # <-- Fat arrow
    input = $(this)
    input.datepicker()

我会解释,但是coffeescript.org的工作比以前更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM