$(document).ready()函数内的代码不适用于AJAX回调
Code inside $(document).ready() function does not work for AJAX callback
我有这样的日期选择器的Javascript代码:
$(document).ready(function(){
$("#date").Datepicker({
Field: '#date',
Format: "YYYY/MM/DD",
date: true,
format: 'YYYY/MM/DD'
});
});
Date元素工作正常。但当我编辑我的帖子时,我会用AJAX创建日期元素。当我再次单击日期元素时,日期选择器不起作用,也不会向我显示任何错误。
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()
请参阅此处的完整文档:http://api.jquery.com/ajaxcomplete/
PS。我从来没有用过它,我只是发现了它。
编辑
应该是这样的:
$(document).ajaxComplete(function(){
$("#date").Datepicker({
Field: '#date',
Format: "YYYY/MM/DD",
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
(因为HTML dom应该具有唯一的id
)。所以试着使用一个类选择器,然后调用它的.Datepicker()
。
试试这个代码:
$('body').on('focus',"#date", function(){
$(this).datepicker({
date: true,
format: 'YYYY/MM/DD'
});
});
相关文章:
- html5 drawImage适用于firefox,而不是chrome
- Jquery Ajax POST不工作.适用于GET
- 如何调试遗留的javascript代码(适用于IE,但在Google Chrome中不正常)
- .load()适用于window,而不是ID
- 使用Jquery更改css样式适用于id's、 不在课堂上
- 提交按钮不会;不适用于Chrome或Firefox,但适用于Internet Explorer
- 为什么 javascript 中的“btoa”编码适用于 20 位字符串而不是 20 位整数
- Javascript String to Date适用于Chrome,而不是FF或Safari
- Onchange,向上,向下箭头键适用于FF和Chrome,但在IE中不起作用
- .load() 适用于 IE 和 dreamweaver 预览版,但不能使用 opera 和 chrome
- 找不到适用于 Highcharts 的 JSON 数组语法
- 为什么在jQuery中使用focusout适用于Firefox,而使用addEventListener则不适用;t
- jQuery选择菜单验证器适用于FF和Chrome,但不适用IE
- 单选按钮'onclick'适用于Chrome和Firefox,但不适用IE
- JQuery ScrollTop适用于chrome,但不适用firefox
- window.opener.location.href适用于IE,但不适用Chrome或Safari
- Frame Busting buster不完全适用于IE
- Jquery touch punch适用于Chrome和Firefox,但不适用IE
- 背景更改仅适用于chrome+$.预加载不适用;不起作用
- JavaScript window.location.replace适用于Firefox,但不适用IE或Chrome