6

次のバージョンでjquery datetimepickerを使用しています

JQuery v1.7.2
JQuery UI - v1.10.3
jQuery timepicker addon V1.3

モジュールでは、「+」をクリックして入力フィールドを動的に作成し、動的に作成された入力のdatetimepickerをバインドし、 「-」をクリックしてその入力フィールドを削除しています 。

私の動的入力フィールドは常に以下のように作成されます。

datepickerfrom_1_1
datepickerfrom_1_2
datepickerfrom_1_3
datepickerfrom_1_4
datepickerfrom_1_5
.
.
.

以下のように jQuery を使用して datetimepicker をバインドしています。

$(window).load(function() {
    $('body').on('focus', 'input[id^="datepickerfrom"]', function() { // Id's Containing "datepickerfrom" string, bind the datetimepicker
        $(this).datetimepicker({
            dateFormat: 'yy-mm-dd',
            timeFormat: 'HH:mm:ss'
        });
    });
}); 

script(datetimepicker)動的入力が作成されると、 は正常に動作します。

問題: 「+」 をクリックしていくつかの動的入力フィールドを追加し、次に「-」をクリックしていくつかの入力を削除し、再びいくつかの動的入力フィールドを追加しています。2 回目に作成された入力フィールドが、datetimepicker を適切に呼び出し/バインドしていません。

問題は何ですか?どうすれば解決できますか?

4

2 に答える 2

1

問題は「on」関数のjqueryコンテキストだと思います。関数 jquery.on では、$(this) を使用します。$(this) はプライマリ セレクター $('body') を参照します。

やってみました:

$('input[id^="datepickerfrom"]').on('focus', function() {

は、入力フィールドが必要であることを示しています。したがって、 $('input[id^="datepickerfrom"]') が入力フィールドであると仮定します。

于 2013-06-19T09:58:53.283 に答える
1

jsfiddle で試してみたところ、うまくいきました。リンクは次のとおりです: http://jsfiddle.net/juTRR/

問題がわかっている場合は、jsfiddle で再現して、それが何であるかを確認してください。$(document).readyの代わりに使用してみてください$(window).load。変更したのはそれだけです。または、問題は実際には追加機能と削除機能にある可能性があります。その場合は、投稿に追加する必要があります。

于 2013-06-19T13:48:50.637 に答える