如何将文档就绪函数放置在 ajax 函数中
How to place a document ready function inside an ajax function
我已经在其他 3 个页面上使用了日期选择器函数,并且效果很好,但现在我正在尝试将其添加到基于 ajax 函数调用 showbookings 生成的页面中。 目前有 8 个单击函数在加载动态内容后重新附加,但我无法让日期选择器工作、显示,什么都没有。那么如何获取 $(document).ready(函数并将其放入 ajax 调用中呢?我有我的输入类 = "日期选择器1"
function showbookings(str, pass) {
if (str === "") {
document.getElementById("txtBookings").innerHTML = "";
return;
}
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("txtBookings").innerHTML = xmlhttp.responseText;
*********
}
};
xmlhttp.open("GET", "page1.php?q=" + str, true);
xmlhttp.send();
}
$(document).ready(function () {
$(".datepicker1").datepicker({
showOn: 'both',
buttonImage: 'images/calendar.gif',
buttonText: 'Pick Date',
buttonImageOnly: true,
changeMonth: true,
changeYear: true,
showAnim: 'slideDown',
duration: 'fast',
onClose: function (text, inst) {
$(this).focus();
}
});
});
那么如何获取 $(document).ready(函数并将其放入 ajax 调用中呢?
你没有。 在这种情况下,这将是毫无意义的。 如果 ready
事件在 AJAX 调用后没有为 document
再次触发,它甚至可能不会执行任何操作。 由于代码所做的只是将事件处理程序附加到该事件,因此在事件触发之前,它实际上不会执行处理程序中的代码。
听起来您实际上想做的是在 AJAX 调用后添加到 DOM 的元素上初始化日期选择器插件。 您可以通过再次调用插件初始值设定项来执行此操作:
$(".datepicker1").datepicker({
showOn: 'both',
buttonImage: 'images/calendar.gif',
buttonText: 'Pick Date',
buttonImageOnly: true,
changeMonth: true,
changeYear: true,
showAnim: 'slideDown',
duration: 'fast',
onClose: function (text, inst) {
$(this).focus();
}
});
请注意,这将匹配 DOM 中的所有'.datepicker'
元素。 包括以前初始化的那些。 如果这导致先前初始化的元素出现不良行为,则只需将插件的选择器限制为仅包含新元素即可。 从代码的外观来看,这可能是这样的:
$("#txtBookings .datepicker1").datepicker({
showOn: 'both',
buttonImage: 'images/calendar.gif',
buttonText: 'Pick Date',
buttonImageOnly: true,
changeMonth: true,
changeYear: true,
showAnim: 'slideDown',
duration: 'fast',
onClose: function (text, inst) {
$(this).focus();
}
});
基本上,您只需要调整选择器以仅指定添加的元素,这些元素可能具有一些通用的父元素。
既然你使用的是jQuery,最好也用它来处理AJAX:
function showbookings(str, pass) {
if (str === "") {
$("#txtBookings").html("");
return;
}
$.get(page1.php?q=" + str);
}
相关文章:
- 通过Ajax将JavaScript函数传递给PHP文件
- jQuery成功函数中的ajax成功函数
- 访问$.ajax()函数中的两个不同数组
- 使用ajax用jquery调用php函数
- 执行ajax成功函数-jQUERY
- javascript未捕获类型错误函数ajax
- 无法调用函数 /AJAX 相关
- Javascript 回调函数 + AJAX.done.
- jQuery在函数AJAX函数内部的全局变量有问题
- Getting TypeError:$.ajax(..).done不是函数[ajax,Jquery]
- jQuery中的调用函数ajax成功响应工作一次,而不是两次
- 传递参数给函数(ajax, javascript, jquery)
- 在每个循环中运行一个函数(ajax.response)
- 运行jQuery函数.Ajax等待响应的时间足够长
- 从表单调用同一页面内的JS函数(AJAX)
- Javascript函数AJAX调用返回未定义
- 如何使javascript变量全局,并将其传递到函数ajax
- 喜欢不喜欢函数AJAX
- 从函数 Ajax 返回
- JQuery等待任何函数完成后再启动另一个函数——ajax、动画和音频