あなたのものがスクロール可能なdivであるかどうかはわかりませんが、ここで発生する問題は、スクロール可能なdiv内でjQueryUIの日付ピッカーがHTMLコンテンツとともに移動しないことです。
これは、問題を示すデモhttp://jsfiddle.net/joycse06/m6A5q/embedded/result/のフィドルです。入力をクリックして、そのdivをスクロールしてみてください。
これは、jQuery UIがカレンダーUIを、コンテナーのスクロール可能なdivの位置として作成absolute
relative
するdocument
かどうかに関係なく作成するために発生します。window
したがって、スクロール可能なdivがスクロールされても、メインウィンドウのスクロールコンテキストは変更されないため、datepickerカレンダーはそのdiv内の他のhtml要素に従いません。
したがって、解決策は、そのdivがスクロールされたときにカレンダーを非表示にすることであり、入力が表示されていない場合は、日付ピッカーカレンダーを非表示にすることができます。したがって、更新されたコードは次のようになります
var datePicker = $('#datepicker').datepicker();
$(".demo").scroll(function() {
datePicker.datepicker('hide');
$('#datepicker').blur();
});
$(window).resize(function() {
datePicker.datepicker('hide');
$('#datepicker').blur();
});
コンテナdivまたはウィンドウがスクロールされると、日付ピッカーが非表示になります。これが実用的なフィドルですhttp://jsfiddle.net/joycse06/m6A5q/2/
私が使用して$('#datepicker').blur();
いるのは、ユーザーがスクロールすると.demo
カレンダーが非表示になりますが、input
まだフォーカスが合っているため、スクロールして戻ると混乱する可能性があるためです。ぼかすと、彼はinput
もう一度クリックする必要があり、日付ピッカーが表示されます。