jQuery/javaScript:不加载图像
我有以下代码:jQuery/javaScript:不加载图像,javascript,jquery,image,load,Javascript,Jquery,Image,Load,我有以下代码: all_images = new Array(Array); $.get('../dotclear-files/themes/biblio/js/dynamic_ajax_php.php', function(data) { var w = 0; $(data).find('image').each(function() { if (!all_images[w]) all_images[w] = new Array(); all_i
all_images = new Array(Array);
$.get('../dotclear-files/themes/biblio/js/dynamic_ajax_php.php', function(data) {
var w = 0;
$(data).find('image').each(function() {
if (!all_images[w]) all_images[w] = new Array();
all_images[w]['url'] = $(this).find('url').text() + '#comments';
all_images[w]['src'] = $(this).find('src').text();
all_images[w]['title'] = $(this).find('title').text();
all_images[w]['width'] = $(this).find('width').text();
all_images[w]['height'] = $(this).find('height').text();
w = w + 1;
});
$("#carousel-comments").append('<ul></ul>');
for (x=0; x<3; x++) {
$('#carousel-comments ul')
.append('<li>')
.append('<a href="' + all_images[x]['url'] + '#comments" title="' + all_images[x]['title'] + '">')
.append('<img alt="' + all_images[x]['title'] + '" class="jcarousel-img jcarousel-img-' + x + '" width="' + all_images[x]['width'] + 'px" height="' + all_images[x]['width'] +'px" />')
.append('</a>')
.append('</li>');
var img = new Image();
$(img)
.load(function() {
$('.jcarousel-img-' + x)
.attr({'src': all_images[x]['src'], 'alt': all_images[x]['title']})
.fadeIn();
})
.attr('src', all_images[x]['src']);
}
$('#carousel-comments').jcarousel('reload');
}, 'xml');
此代码的第一部分从PHP脚本加载图像,该脚本返回一个XML文件。这部分很好用
问题出现在第二部分:$img.load。。。它从不显示我的图像
这可以看出:这是第三个旋转木马,标题是“C'est vous qui le dites!”!我们可以看到图片的标题显示在。。。但是图像本身没有加载
我做错了什么
谢谢你的帮助 我认为您必须将该文件附加到传送带上 或者类似的事情 交换评论后编辑: LI中的元素与var img=新图像中的元素不同。然后试着这样做:
嗯。。。我不这么认为,因为图像本身已经被附加到它上面了,参见$'carousel-comments ul'。append等。所以我要做的就是设置alt和src属性..是的,我只是看到了这个。。。但是为什么不直接将src放在图像中呢?我不明白你的意思:我想要的是在设置src属性之前等待图像完全加载,这样图像只有在完全加载时才会显示。。。你认为还有其他方法可以达到这个目的吗?好吧,如果你只是创建一个没有caroussel的图像,那又有什么用呢?它起作用了吗?不,完全一样。旋转木马只会改变物品的位置,它会将物品放在一条直线上,仅此而已。。。
$(img).appendTo($("#carousel-comments"));
for (x=0; x<3; x++) {
var img = new Image();
img.load(function() {
$(this).fadeIn();
// Also, set your carousel here
});
img.attr('alt', all_images[x]['title'])
.attr('width', all_images[x]['width'])
.attr('height', all_images[x]['height'])
.addClass('jcarousel-img jcarousel-img-' + x)
.attr('src', all_images[x]['src']);
$('#carousel-comments ul')
.append('li')
.append('<a href="' + all_images[x]['url'] + '#comments" title="' + all_images[x]['title'] + '">')
.append(img);
}