Jquery 显示外部页面并在div中加载gif

Jquery 显示外部页面并在div中加载gif,jquery,ajax,html,Jquery,Ajax,Html,我可以让div显示外部页面的内容,但加载的gif不会显示。有人能帮我更正密码吗。短暂性脑缺血发作 <a href="javascript:void(0);" id="load-extmsg">blah</a> <script type="text/javascript"> $(document).ready(function(){ $('#load-extmsg').click(function(){ $("#extmsg").load("blah.

我可以让div显示外部页面的内容,但加载的gif不会显示。有人能帮我更正密码吗。短暂性脑缺血发作

<a href="javascript:void(0);" id="load-extmsg">blah</a>

<script type="text/javascript">
$(document).ready(function(){
$('#load-extmsg').click(function(){
    $("#extmsg").load("blah.php", function(){
        $("#ajaxLoader1").remove();
    });
});
</script>

<div id='extmsg'><img src="/images/ajaxLoader2.gif" id="ajaxLoader1"/></div>

$(文档).ready(函数(){
$(“#加载extmsg”)。单击(函数(){
$(“#extmsg”).load(“blah.php”,function(){
$(“#ajaxLoader1”).remove();
});
});
下面是经过一些尝试和错误后的正确代码:

<a href="javascript:void(0);" id="load-extmsg">blah</a>

<script type="text/javascript">
$(document).ready(function(){
$('#load-extmsg').click(function(){
$("#ajaxLoader1").show();
    $.post('blah.php', function(data){
         $("#ajaxLoader1").remove();;
         $("#extmsg").append(data);
    })
});
});
</script>

<div id='extmsg'><img src="/images/ajax-loader2.gif" id="ajaxLoader1" style="display:none;" /></div>

$(文档).ready(函数(){
$(“#加载extmsg”)。单击(函数(){
$(“#ajaxLoader1”).show();
$.post('blah.php',函数(数据){
$(“#ajaxLoader1”).remove();;
$(“#extmsg”).append(数据);
})
});
});
我看这里没有问题

您正在装载机的顶部装载

尝试这样做:

$('#load-extmsg').click(function(){
    $("#ajaxLoader1").show();
    $.post('blah.php', function(data){
         $("#ajaxLoader1").hide();
         $("#extmsg").append(data);
    })
});
添加一些css以隐藏正在加载的图像:

#ajaxLoader1 {
    display: none;
}

我还要确保图像路径有效(健全性检查)

您还可以检查一下在点击后加载的图像(ajaxLoader2.gif)是否真的在页面上。只需检查FireFox中的元素(w/firebug)

否则,如果图像存在,我看不到任何可能使其隐藏的样式问题


谢谢

您还可以在图像下方添加另一个div,并将外部页面内容放到该div中。这样,父div将始终具有图像。您有$(“#ajaxLoader1”)。删除()这将在加载blah.php后删除图像。加载是否发生得太快,以至于您看不到图像?图像没有显示,因为我忘记了加载gif的名称中的“-”,但图像始终显示在div中。我希望在加载外部页面之前单击时显示gif。我是否应该放置加载gif和一些javascript在外部页面上,而不是在主页的div中?您应该在图像上设置style=“display:none”。默认情况下,这种方式是隐藏的。然后添加$(“#ajaxLoader1”).show();作为单击处理程序的第一行。这将在加载下一页之前首先显示图像。您应该都设置好这一点。请将其发送给Projapati和Neal以获得解决方案。我需要在默认情况下隐藏图像,然后仅单击显示图像,然后在外部页面加载后删除加载图像。图像没有显示,因为我忘记了加载gif的名称中有“-”,但图像始终显示在div中。我希望在单击外部页面时显示gif,直到加载外部页面。我是否应该将加载gif和一些javascript放在外部页面上,而不是放在主页的div中?加载gif会在页面加载后立即显示,然后单击链接。我需要gif要在div中显示onclick,然后在外部页面加载到同一div后消失。TIAThanx到Projapati和Neal用于解决方案。我需要在默认情况下隐藏图像,然后onlick显示图像,然后在外部页面加载后删除加载图像