2012-01-05 117 views
1

我有一个jQuery代码:如何加载jQuery中加载iframe之前的图像loading.gif?

<script type='text/javascript'> 
jQuery(function ($) { 
    $('.basic').click(function (e) { 
     var loading = '<img src="loading.gif"/>'; 
      $('<div></div>').load(loading); 
     var src = 'test.php'; 
      var html = '<iframe src="'+src+'&output=embed" style="border:0"></iframe>'; 
      $.modal(html); 
      return false; 
    }); 
}); 
</script> 

如何加载之前加载图像loading.gif一个IFRAME?

+0

如果你想loading.gif某处显示,你需要真正把它放在你的页面。就像你现在所做的那样,它不会显示,因为它不在页面中。在点击之前加载像这样的图像的最佳方式是将图像放入实际页面的div中(以便在加载页面时加载图像)并使其显示:最初无。然后,当您想要显示它时,您只需使用.show()并且图像已经加载并且它已经在页面中。 – jfriend00 2012-01-05 02:40:21

+0

你也没有正确使用'.load()'。它不需要HTML字符串。它需要一个URL来执行ajax调用并插入结果。这不是你想要的。 – jfriend00 2012-01-05 02:41:45

回答

0

您可以使用一个回调

<script type='text/javascript'> 
jQuery(function ($) { 
    $('.basic').click(function (e) { 
     var loading = '<img src="loading.gif"/>'; 

     $('<div></div>').load(loading, function() { 
     var src = 'test.php'; 
      var html = '<iframe src="'+src+'&output=embed" style="border:0"></iframe>'; 
      $.modal(html); 
      return false; 
    }); //end of loading the image 
    }); //end of loading the iframe 
}); 
</script> 
1

我的解决办法:

jQuery(function ($) 
{ 
    $('.basic').click(function (e) 
    { 
     $('<img />').bind('bind',function() 
     { 
      var src = 'test.php'; 
      var html = '<iframe src="'+src+'&output=embed" style="border:0"></iframe>'; 
      $.modal(html); 
     }).attr('src','loading.gif'); 
     return false; 
    }); 
});