Dan*_*nny 6 javascript ajax jquery
我在更新ajax请求后未准备好的元素时遇到问题.
如果我myFunction()在页面加载上运行我的函数,如下所示:
$(function() {
myFunction();
}
Run Code Online (Sandbox Code Playgroud)
我没有任何问题.但是,如果我然后使用类似的东西
$.ajax({
url: this.href,
dataType: "script",
complete: function(xhr, status) {
myFunction();
}
});
Run Code Online (Sandbox Code Playgroud)
返回$(".myElement").replaceWith("htmlHere").当完整事件触发时,元素根本就没有准备好.如果我在那里设置延迟,它再次正常工作.
当DOM准备就绪时,除了'完成'之外还有其他事件会被解雇吗?
更新:
这是实际的代码:
$(function() {
$("a.remote").live("click", function(e) {
$.ajax({
url: this.href,
dataType: "script",
success: function(xhr, status) {
myFunction();
}
});
e.preventDefault();
return false;
});
myFunction();
});
function myFunction() {
// Modify the dom in here
}
Run Code Online (Sandbox Code Playgroud)
失踪的); 对我来说只是一个错字.
香港专业教育学院现在尝试使用成功而不是完成,它似乎没有任何区别.
我已经根据您的代码设置了一个jsfiddle,它似乎正在工作。
这是当前代码:
$(function() {
$("a.remote").live("click", function(e) {
$.ajax({
url: this.href,
dataType: "script",
success: function(xhr, status) {
myFunction();
}
});
e.preventDefault();
return false;
});
});
function myFunction() {
$("span").replaceWith("<p>test</p>");
}
Run Code Online (Sandbox Code Playgroud)
并将span标记替换为一个段落。请检查并与您的代码进行比较。如果相同,那么您的问题可能不在此函数之外(可能在myFunction中?)。
$(function() {
myFunction();
}
Run Code Online (Sandbox Code Playgroud)
应该
$(document).ready(function() {
myFunction();
});
Run Code Online (Sandbox Code Playgroud)
或者如果您希望 ajax 在负载上运行。做
$(document).ready(function() {
$.ajax();
});
Run Code Online (Sandbox Code Playgroud)