情况如下:我正在使用 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/