2010-07-26 35 views
0

所以我有一个.fadeIn()回调的图像.load设置,工作得很好。问题是,如果我在相同的图像上连续两次触发.load,它不会到达回调!jQuery:.load图片,然后fadeIn()失败,当点击两次!

这里的代码片段:

$('#thumbs a').click(function() { 
    imageSrc = $(this).attr('href').substring(1)+'.jpg'; // grab src, remove hash, add jpeg extension 
    $('#viewer img').fadeOut('fast', function() {  // fade old image out fast, wait until finished before changing src 
    $('#viewer img').attr('src', (mediumPath+imageSrc)); // change src to new image 
    $('#viewer a').attr('href', imageSrc); 
    }); 
    $('#viewer img').load(function(){  // once image is loaded, fade the img back in 
     $('#viewer img').fadeIn('slow'); 
     }); 
    return false; 
}); 

而且你可以尝试在我的网站(在建)here。只需点击左侧的缩略图两次,loader.gif就不会消失,即不会进入.fadeIn()。

注意:(?)我相信这仅仅是影响WebKit浏览器

回答

1

我已经在Chrome浏览器测试您的网站http://www.benjibee.com/(基于Webkit的浏览器,因为据我所知),并一直未能复制问题。虽然它的确需要比Firefox更长的时间(但那可能只是我的电脑)。

一些建议/意见。

与您.click()基于交互,使用格式:

.click(function(e) { 
    e.preventDefault(); 
    // Rest of your Javascript Code here... 
}); 

将执行这样停锚/链接,并且可以在jQuery的处理开始被诱发,而不是等待结束使用return false

您可能还想在JavaScript变量中存储当前图像/链接的详细信息,然后在缩略图上进行后续点击时进行检查 - 如果显示img1.jpg,并且该图像的缩略图被点击,当前较大的图像淡出,然后再次消失,没有变化。只是一件小事。

+0

感谢您的关注,我很感激。我想我不应该在这个网站上指点人,而我正在积极研究这个网站,呵呵。我现在将在本地副本上工作,因为它代表了已经存在的繁琐页面。 至于返回false,我意识到另一种方法,我粘贴了那些内容,因为我计划使用jQuery BBQ进行散列导航,但是希望在构建其他代码时摆脱它们。 – Benji 2010-07-26 08:14:48

相关问题