-1

我正在使用两个盒子

<div id='box' onclick='loadFun();'>Load Content</div>
<div id='loading'></div>

功能

function loadFun() {
 $("#box").html('wait..').load('/content.php');
}

我需要它,这样当我单击 DIV 时,box文本wait..应该出现在 DIV 中loading,并且当内容完全加载时,DIVloading应该变为空。
我们还
可以设置如果内容在 20 秒内未加载则应取消请求的时间

4

3 回答 3

1

.load 有以下参数:

.load( url [, data ] [, complete(responseText, textStatus, XMLHttpRequest) ] )

现在您只使用 : URL。

因此,使用 Function at Complete 参数可以解决您的问题,如@Hushme 所说:

function loadFun() {
     $("#loading").html('wait..');

     $("#box").load('/content.php',function(){   //here he loaded the content, and whenever Content loading completes he cleared the waiting msg...
     $("#loading").html('');

    });
}

在这里,他所做的是,每当 Content.php 中的内容成功加载时,删除 #Loading Div 中的 Wait... 消息。

希望你有清晰的画面。

于 2013-07-21T04:50:50.473 回答
1

尝试这个

function loadFun() {
 $("#loading").html('wait..');
$("#box").load('/content.php',function(){
 $("#loading").html('');
});
}
于 2013-07-21T04:46:29.060 回答
0

我猜..您可以使用 HushMe 的答案来显示加载消息.. 如果内容未在 20 秒内加载,我想回答取消请求。首先,jquery .load 方法在内部使用 $.ajax 方法,如果数据作为对象提供,则使用 POST 方法;否则,使用 GET。因此,对于设置超时,您可以简单地使用以下 ajax 调用,它会在请求超时后引发错误。此外,在错误回调中,您可以检查是否由于超时而发生错误,并可以提供自定义消息,例如“请求超时...”

$.ajax({
url: "/content.php",
error: function(jqXHR, textStatus){
    if(textStatus == 'timeout')
    {     
         alert('Request timed out..');         
    }
},
success: function(){
    //do something
},
timeout:20000
});

希望这可以帮助..

于 2013-07-21T06:51:26.783 回答