我需要在div中加载HTML。
$("#content").load("content.html");
$("#myText").html("Prasath");之后,我需要更新div(id='myText')中的一些文本,这些文本在"content.html“中是可用的。"content.html“包含大量数据,因此加载需要一些时间。在此之前,将执行此行:
$("#myText").html("Prasath");如何从JavaScript/jQuery同步加载HTML内容?我不想这样做,在负荷回调选项。
发布于 2017-02-28 10:40:05
$("#content").load("content.html", function(data){
// this will execute after load is fired.
});使用回调。
编辑:如果您真的想发出同步请求,可以使用以下代码。但是,正如我在前面的注释中提到的,您将在控制台中得到警告:
var data = $.ajax({
type: "GET",
url: "content.html",
async: false
}).responseText;
// this code waits for the above ajax request.发布于 2017-02-28 10:39:48
您不能同步加载它,但是您可以很容易地在load()回调中完成下一个任务。例如:
$("#content").load("content.html", function() {
$("#myText").html("Prasath");
});发布于 2017-02-28 10:42:23
请看一下关于JQuery文档的load()。
您可以将回调函数传递给load()
例如,:
$("#content").load("content.html", function(){
$("#myText").html("Prasath");
});编辑:没有办法使load()同步加载内容。解决方案是,您可以定义一个Jquery函数,它使用ajax()发送同步请求到目标url,然后设置响应内容以引导div。
$(function(){
$.fn.extend({
syncLoad: function (url) {
var result = $.ajax({
url: url,
async: false,
type: "GET"
}).responseText;
$(this).html(result);
}
});
$("#content").syncLoad("/echo/js/?js=hello%20world!");
});JS Fiddle:https://jsfiddle.net/1v8fmb8b/
https://stackoverflow.com/questions/42506418
复制相似问题