Ajax 调用后 jQuery 日期选择器不起作用

标签 jquery ajax datepicker

情况如下:我正在使用 jQuery 动态加载表单。在这种形式中,有一个来自 jQueryUI 的日期选择器。问题是日期选择器第一次加载,但如果再次加载表单,日期选择器将不起作用。我知道每次加载页面时都需要重新绑定(bind)日期选择器函数,但我所有的尝试都失败了。任何帮助将不胜感激!

代码片段如下:

function makeMyDay() 
{
    $(".datepicker").datepicker(
    {
        inline: true
    });
}

function getNewPage(id,idTwo)
{
    $.ajax(
    {
        type: "GET",
        url: 'foo.php',
        data: "id=" + id,
        success: function(data) 
        {
            $('.bar' + idTwo).html(data);
            makeMyDay();
        }
    });
}

以防万一需要澄清,foo.php 被加载到 .bar 中。 datepicker本身在foo.php中,外部JS文件在主文件中,而不是foo.php中。

编辑

更新了下面的代码,但问题仍然存在:

$(function()
{
    $('.datepicker').datepicker({inline: true});
});

function getNewPage(id,idTwo)
{
    $.ajax(
    {
        type: "GET",
        url: 'foo.php',
        data: "id=" + id,
        success: function(data) 
        {
            $('.bar' + idTwo).html(data).find(".datepicker").datepicker(
            {
                inline: true
            });
        }
    });
}

最佳答案

$(makeMyDay); 切换为 makeMyDay(); 应该可以解决问题,因为 makeMyDay 是一个函数而不是选择器。

或者尝试在 ajax 调用之后直接绑定(bind) datepicker(),只要 .datepicker 位于 .bar 容器中,这应该可以工作:

function getNewPage(id,idTwo)
{
    $.ajax({
        type: "GET",
        url: 'foo.php',
        data: "id=" + id,
        success: function(data) {
             $('.bar' + idTwo).html(data).find(".datepicker").datepicker({
                   inline: true
              });
        }
    });
}

可以在此处找到模拟该过程的工作示例:http://jsfiddle.net/7wBWB

关于Ajax 调用后 jQuery 日期选择器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087501/

相关文章:

javascript函数返回值未按预期工作

javascript - 为什么 url 变量会导致 ajax 相对 url 出现问题?

javascript - 关于 php/javascript 中的日期选择器

php - 将日期选择器字段添加到 WordPress 中的插件设置页面

Jquery 如果未禁用则选择全部

Javascript 阻止表单提交

javascript - HTML 表单数据转换为对象以传递方法

ajax - 设置 Jquery Ajax 事件

arrays - 如何将字典对象的javascript列表发送到django ajax

javascript - Angular UI 日期选择器获取错误的日期