簡體   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