我有jquery ajax()
函数:
$.ajax({
type: "POST",
url: 'ajax.php',
data: 'url='+variable,
success: function(data){
$('#mydiv').html(data);
}
});
我的ajax响应(data
变量)与此类似:
<a id="90" href="mylink"><img src="myimagelink90.jpg" /></a>
<a id="91" href="mylink"><img src="myimagelink91.jpg" /></a>
<a id="92" href="mylink"><img src="myimagelink92.jpg" /></a>
<a id="93" href="mylink"><img src="myimagelink93.jpg" /></a>
<a id="94" href="mylink"><img src="myimagelink94.jpg" /></a>
<a id="97" href="mylink"><img src="myimagelink97.jpg" /></a>
<a id="98" href="mylink"><img src="myimagelink98.jpg" /></a>
<a id="120" href="mylink"><img src="myimagelink120.jpg" /></a>
<a id="121" href="mylink"><img src="myimagelink121.jpg" /></a>
<a id="122" href="mylink"><img src="myimagelink122.jpg" /></a>
<a id="123" href="mylink"><img src="myimagelink123.jpg" /></a>
<a id="124" href="mylink"><img src="myimagelink124.jpg" /></a>
<a id="125" href="mylink"><img src="myimagelink125.jpg" /></a>
所以我的问题是:等待myimagelink#.jpg的最简单方法是什么?
答案 0 :(得分:5)
尝试使用load()
功能。在这种情况下,您需要使用live()
处理程序绑定它,因为图像是动态加载的:
var loaded = 0;
$('#mydiv a img').live('load', function()
{
loaded++;
if (loaded == $('#mydiv a img').length)
{
alert('All of the images have loaded.');
}
});
可能有一种更有效的方法可以做到这一点,所以请随意说这可能有多慢。
答案 1 :(得分:1)
你必须在每个上加一个“onload”事件,递增一些计数器并查看它是否与你插入的图像数量相符。
答案 2 :(得分:1)
您是否正在加载图像,并希望在加载后显示?
虽然'data'是包含字符串的javascript变量,但您的图片不会加载...
要在将图像插入页面之前加载图像,您必须使它们成为dom元素。
不知道这是否是最佳选择,但我认为这有效:
$.ajax({
type: "POST",
url: 'ajax.php',
data: 'url='+variable,
success: function(data){
$('<div />').html(data).load(function(){
$(this).appendTo("#myDiv");
})
});
答案 3 :(得分:1)
类似的东西:
$.ajax({
type:"POST",
url: "ajax.php",
dataType: "application/x-www-form-urlencoded",
data: "url=" + variable,
async: true,
beforeSend : function(){
$("#Loading").show(); //show image loading
},
success: function(msg){
$("#LoadingPiloto").hide(); //hide image loading
}
})