Javascript $(document).ready()函数中的代码不适用于AJAX回调
我有如下日期选择器的Javascript代码:Javascript $(document).ready()函数中的代码不适用于AJAX回调,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有如下日期选择器的Javascript代码: $(document).ready(function(){ $("#date").Datepicker({ Field: '#date', Format: "YYYY/MM/DD", date: true, format: 'YYYY/MM/DD' }); }); $(document).ajaxComplete(function(){ $("#date").
$(document).ready(function(){
$("#date").Datepicker({
Field: '#date',
Format: "YYYY/MM/DD",
date: true,
format: 'YYYY/MM/DD'
});
});
$(document).ajaxComplete(function(){
$("#date").Datepicker({
Field: '#date',
Format: "YYYY/MM/DD",
date: true,
format: 'YYYY/MM/DD'
});
});
日期元素工作正常。但是当我编辑我的文章时,我用AJAX创建日期元素。当我再次单击date元素时,datepicker不工作,也不会向我显示任何错误
AJAX代码:
$(document).on("click", ".edit-btn", function () {
$.ajax({
type: 'put',
url: 'edit',
data: $(".form").serialize(),
success: function (result) {
$('#ajax_div').html(result);
}
})
})
它不起作用,因为您的文档已经完成。之后将加载AJAX 你可以用
$( document ).ajaxComplete()
请参阅完整的文档:
顺便说一句,我从来没有用过它,我只是发现了它
编辑
应该是这样的:
$(document).ready(function(){
$("#date").Datepicker({
Field: '#date',
Format: "YYYY/MM/DD",
date: true,
format: 'YYYY/MM/DD'
});
});
$(document).ajaxComplete(function(){
$("#date").Datepicker({
Field: '#date',
Format: "YYYY/MM/DD",
date: true,
format: 'YYYY/MM/DD'
});
});
它不起作用,因为您的文档已经完成。之后将加载AJAX 你可以用
$( document ).ajaxComplete()
请参阅完整的文档:
顺便说一句,我从来没有用过它,我只是发现了它
编辑
应该是这样的:
$(document).ready(function(){
$("#date").Datepicker({
Field: '#date',
Format: "YYYY/MM/DD",
date: true,
format: 'YYYY/MM/DD'
});
});
$(document).ajaxComplete(function(){
$("#date").Datepicker({
Field: '#date',
Format: "YYYY/MM/DD",
date: true,
format: 'YYYY/MM/DD'
});
});
请尝试以下代码:
$('body').on('focus',"#date", function(){
$(this).datepicker({
date: true,
format: 'YYYY/MM/DD'
});
});
请尝试以下代码:
$('body').on('focus',"#date", function(){
$(this).datepicker({
date: true,
format: 'YYYY/MM/DD'
});
});
在动态附加HTML代码后,需要调用日期选择器代码。要解决此问题,请将代码放入函数中:
function enableDatePicker() {
$("#date").Datepicker({
Field: '#date',
Format: "YYYY/MM/DD",
date: true,
format: 'YYYY/MM/DD'
});
}
立即称之为:
$(document).ready(function(){
enableDatePicker();
});
并在附加HTML后调用:
$(document).on("click", ".edit-btn", function () {
$.ajax({
type: 'put',
url: 'edit',
data: $(".form").serialize(),
success: function (result) {
$('#ajax_div').html(result);
enableDatePicker(); // Call it again
},
})
});
另外,我看到的另一个问题是,您正在对id为
date
的元素调用.Datepicker()
,这表示只能有一个id为id
的元素(因为HTML dom应该具有id
唯一性)。因此,请尝试使用类选择器,然后在此基础上调用.Datepicker()
。动态附加HTML代码后,需要调用日期选择器代码。要解决此问题,请将代码放入函数中:
function enableDatePicker() {
$("#date").Datepicker({
Field: '#date',
Format: "YYYY/MM/DD",
date: true,
format: 'YYYY/MM/DD'
});
}
立即称之为:
$(document).ready(function(){
enableDatePicker();
});
并在附加HTML后调用:
$(document).on("click", ".edit-btn", function () {
$.ajax({
type: 'put',
url: 'edit',
data: $(".form").serialize(),
success: function (result) {
$('#ajax_div').html(result);
enableDatePicker(); // Call it again
},
})
});
另外,我看到的另一个问题是,您正在对id为
date
的元素调用.Datepicker()
,这表示只能有一个id为id
的元素(因为HTML dom应该具有id
唯一性)。因此,尝试使用类选择器,然后调用.Datepicker()
。您需要将代码放入ajax成功处理程序中。还要注意的是,id应该是唯一的。谢谢,id是唯一的,ajax可以正常工作。但是在not work中的datepaicker你可以共享ajax调用代码吗?我也可以编辑我的帖子并共享ajax代码。你需要在新创建的元素上调用DatePicker()初始化器。document.ready此时将只执行页面上的操作。它不会再次运行。您需要将代码放入ajax成功处理程序中。还要注意的是,id应该是唯一的。谢谢,id是唯一的,ajax可以正常工作。但是在not work中的datepaicker你可以共享ajax调用代码吗?我也可以编辑我的帖子并共享ajax代码。你需要在新创建的元素上调用DatePicker()初始化器。document.ready此时将只执行页面上的操作。它不会再次运行。您能将我的ajax函数转换为.ajaxcomplete()吗?您能将我的ajax函数转换为.ajaxcomplete()吗?