2

ボタンをクリックすると、「body」要素に html を追加する jquery がいくつかあります。そのhtmlには、表示されるべきときに表示されないdatepicker入力フィールドがあります。

アプリの他のいくつかの場所で ui-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() を呼び出す方法を変更して、datepicker をアタッチしたい要素にのみ適用されるようにしました。

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

これにより、.each => の最初の問題が解消されます。
今では静かに失敗します。エラーや警告はありません。日付ピッカーは単に表示されません。

jquery.ui.datepicker.js を掘り下げて、何が起こっているのかを把握できるかどうかを確認しますが、datepicker が応答しない理由について何か考えがある場合は、お知らせください。

更新 2 OK、さらに一歩進みました。クラス「hasDatepicker」は、日付ピッカーを追加したい要素に既にアタッチされていました(つまり、要素が非表示で未使用である間に、 $('.date-picker').datepicker() が別の場所で呼び出されていました)が、日付ピッカーが機能しませんでした。要素からクラスを削除し、 .datepicker() を再度呼び出すことでこれを修正しました

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

クリックすると日付ピッカーが表示されるようになりましたが、日付を選択しても何も起こりません...助けていただければ幸いです

4

1 に答える 1