Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 重新加载ajax div后,日期选择器不会启动_Jquery_Ajax_Datepicker - Fatal编程技术网

Jquery 重新加载ajax div后,日期选择器不会启动

Jquery 重新加载ajax div后,日期选择器不会启动,jquery,ajax,datepicker,Jquery,Ajax,Datepicker,我在通过ajax更新的div中有一个jquery日期选择器。在整个页面重新加载后,我可以打开datepicker一次,但在ajax只更新包含datepicker输入的div之后,我无法看到datepicker。我曾尝试过一种解决类似问题的方法,但运气不佳 我对jquery和ajax不是很熟悉,所以也许有人可以立即看到问题 我有一个包含ajax的jquery函数: function example(){ $.ajax({ url: "page.php", cache: false,

我在通过ajax更新的div中有一个jquery日期选择器。在整个页面重新加载后,我可以打开datepicker一次,但在ajax只更新包含datepicker输入的div之后,我无法看到datepicker。我曾尝试过一种解决类似问题的方法,但运气不佳

我对jquery和ajax不是很熟悉,所以也许有人可以立即看到问题

我有一个包含ajax的jquery函数:

function example(){
$.ajax({
  url: "page.php",
  cache: false, 
  success: function(data){
    $('#div').html(data);
  }
});

}
Ajax重新加载一个div,其中包含一个日期选择器输入, 看起来是这样的:

<input type="text" id="datepicker"/>
我必须做什么,才能在每次通过ajax更新div时看到datepicker?
有人建议在ajax成功时刷新datepicker,我没有让它以这种方式工作,或者不知道如何工作

需要初始化datepicker,因为使用AJAX加载的datepicker是一个全新的元素,并且在初始化它时不存在。所有原始事件都不再绑定到新元素。在AJAX加载成功回调上执行此操作(这取决于您执行此操作的方式)


这实际上取决于如何构造代码来说明最佳实践是什么,但是如果您只在一个位置加载内容,则可以重复datepicker初始化,或者将其包装在函数中,并在需要时调用它。

一种方法是重新运行
.datepicker()
ajax成功的初始值设定项

将日期选择器代码更改为:

function applyDatepicker(elem) {
    $(elem).datepicker({dateFormat: "dd.mm.yy"});
    //... Your datepicker code
}
然后,一旦文件准备就绪:

$(document).ready(function(){
    applyDatepicker('#datepicker');
})
在ajax成功回调中:

$.ajax({
    //... other ajax params,
    success: function(){
        //... success callback code
        applyDatepicker('#datepicker');
    }
});
此外,正如所建议的,了解最佳实践的唯一方法是更多地了解您的代码



建议将元素更改为具有
class=“datepicker”
而不是
id
,主要原因是一个页面中可能有多个日期选择器,并且id总是唯一的。作为初学者,我建议最简单的方法是尝试将id想象为元素的专有名词,而类将是它的普通名词或形容词!

日期选择器初始值设定项现在位于p中php(在ajax调用的页面内)。这是一个我可以让它工作的地方。它应该是在同一个页面上,ajax jquery才能让它按照你的方式工作吗?我所说的工作是指在整个页面重新加载时工作。我尝试了你告诉我的方式,但即使在整个页面重新加载时,我也无法启动日期选择器。你可以在主页中添加以上所有内容。这是使jax调用,而不是通过ajax加载/调用的调用。由于不了解您的实际代码,我所能建议的是,它很可能会与进行ajax调用的代码放在同一页面中。非常感谢!在将所有脚本添加到主页并从我的代码中删除额外的“)”之后,它现在可以工作了:),就像你说的那样。谢谢
$.ajax({
    //... other ajax params,
    success: function(){
        //... success callback code
        applyDatepicker('#datepicker');
    }
});