2009-08-16 171 views
3

我有一个问题,即时加载到一个窗体,具有日期的页面div。我想在那里得到datepicker,但是当页面用ajax加载时,jquery没有看到我的输入。我想是这样的:jquery ui datepicker在ajax加载页面

$('#birthdate').live('click', function() { 
    $(this).datepicker({showOn:'focus'}).focus(); 
}); 

以及它的工作,但整个日期选择器闪烁,有时不显示等 有没有一种可能是从我生病显示日期选择自己onlcik功能? 类似:

function choosedate() { 
    $('#birhtdate').datepicker(); 
} 

它不仅与日期选择器,我只是不知道如何使用jquery里面AJAX加载页面。

回答

8

在处理您的ajax响应时,您应该可以调用$("#yourdate").datepicker()

例如:

$.get("new_div_contents.whatever", function(data) { 
    // do your thing with the data 
    $("#yourdate").datepicker(); 
}); 
0

我的关注分离成两种组分。

  1. 设置的日期选择为焦点
  2. 给输入焦点时,页面被更新要显示的输入。

现在,如果通过AJAX调用更新输入,则需要在加载日期选择器时重新应用日期选择器。这是因为任何以前的元素(被替换)都将从DOM中除去,并且还会为datepicker处理程序。如果没有,那么你只需要将datepicker与input元素关联一次。赋予元素焦点并触发焦点事件处理程序应导致显示任何关联的日期选择器。

$.get('/url/to/action', function(data) { 
    $('#birthdate').datepicker({ showOn: 'focus' }); 
    var bd = $('#birthdate').focus().get(0); 
    if (bd) bd.focus(); 
}); 

注意,jQuery文档是关于调用焦点()jQuery对象是否实际上给聚焦到元件或简单地调用焦点事件处理程序不清楚。上面的代码假设它没有给出元素焦点,所以使用javascript方法完成。这可能没有必要,但我没有尝试过,并且取决于(冲突的)文档。

0

Z-索引是一个选项

$('.datepicker').datepicker({'zindex':1200});