Javascript 当我在ajax调用后将datepicker设置为ready时,jquery日期选择器不起作用

Javascript 当我在ajax调用后将datepicker设置为ready时,jquery日期选择器不起作用,javascript,jquery,ajax,datepicker,Javascript,Jquery,Ajax,Datepicker,我想知道,在ajax函数调用之后,我的jquery ui日期选择器在document.ready中没有工作。当我在ajax上成功完成它的工作时,请帮助我该怎么做。不工作的原因是什么 $("#ScheduledArrivalDate").datepicker({ beforeShow: function () { setTimeout(function () { $('.ui-datepicker').css('z-index', 2000);

我想知道,在ajax函数调用之后,我的jquery ui日期选择器在
document.ready
中没有工作。当我在ajax上成功完成它的工作时,请帮助我该怎么做。不工作的原因是什么

$("#ScheduledArrivalDate").datepicker({
    beforeShow: function () {
        setTimeout(function () {
            $('.ui-datepicker').css('z-index', 2000);
        }, 0);
    }
});

function getPage(page) {
    $.ajax({
        type: "POST",
        url: page,
        data: $("#frm").serialize(),
        xhrFields: {
            withCredentials: true
        },
        success: function (html) {
            $('#List').empty();
            $('#List').append($.parseHTML(html));
        },
        error: function () {
            alert("error");
        },
        complete: function () { 
           alert("complete");
        }
    });
}
$.document.ready()
仅在加载不带ajax的页面后启动。当您在ajax调用中替换/追加html,并且在新插入的html中有一个日期字段时,您需要再次初始化它(至少对于新插入的html块)

您可以通过调用success或complete函数中的
$.datepicker
来实现这一点,就像您已经做的那样,或者通过向javascript文件中添加
$.document.ajaxEnd()
来实现这一点,在ajax事件每次结束后初始化的内容(也在出错时)

请注意不要双重启动日期选择器,尤其是在使用ajaxEnd时。这可能会导致意外行为。

只有在页面加载后,$(document).ready()中的代码才会运行。当您动态添加日期选择器时,如果我没有错的话。所以做一件事。在变量中选择选项,如下所示:

var options = {
    beforeShow: function () {
        setTimeout(function () {
            $('.ui-datepicker').css('z-index', 2000);
        }, 0);
    }
}
然后:

在ajax调用中:

function getPage(page) {
        $.ajax({
            type: "POST",
            url: page,
            data: $("#frm").serialize(),
            xhrFields: {
                withCredentials: true
            },
            success: function (html) {
                $('#List').empty();
                $('#List').append($.parseHTML(html));
                $('#IdOfnewlyAddedDatePicker').datepicker(options);
            },
            error: function () {
        alert("error");
            },
            complete: function () { 
               alert("complete");
            }
        });
    }

如果这不起作用或者您正在注入其他html,请告诉我。

也发布您的html!!您是否在
ajax
success
中添加了任何html?如果我只是完成了这个函数ajax,或者ajax成功了,它工作得很好,我理解兄弟!!你能把你的
ajax
也张贴在这里吗?setTimeout(func,0)!?检查这个
function getPage(page) {
        $.ajax({
            type: "POST",
            url: page,
            data: $("#frm").serialize(),
            xhrFields: {
                withCredentials: true
            },
            success: function (html) {
                $('#List').empty();
                $('#List').append($.parseHTML(html));
                $('#IdOfnewlyAddedDatePicker').datepicker(options);
            },
            error: function () {
        alert("error");
            },
            complete: function () { 
               alert("complete");
            }
        });
    }