2009-08-12 284 views
1

我在下面的无序列表中点击其中一个缩略图时需要更改的图库中有一个大图。图像是动态传入的,所以jquery脚本需要能够取得缩略图的src,从文件名中删除“-thumb”,然后用新的源代替大图。jQuery图片更改 - 图库视图

请让我知道什么是我最好的方法来这样的画廊。

在此先感谢。

-B

+0

您的标记将有助于给你一个更合适的解决方案 – redsquare 2009-08-12 13:21:44

回答

7

喜欢的东西:

$('img.thumb').click(function() { 
    var src = $(this).attr('src'); 
    $('#bigImage').attr('src', src.replace(/-thumb/,'')); 
}); 

下面的例子适用,如果你的拇指正在通过AJAX加载:

(1)使用Events/live

$('img.thumb').live("click", function() { 
    var src = $(this).attr('src'); 
    $('#bigImage').attr('src', src.replace(/-thumb/,'')); 
}); 

(2)作为jQuery的ajax方法之一的回调(例如):

function initThumbs() 
{ 
    $('img.thumb').click(function() { 
     var src = $(this).attr('src'); 
     $('#bigImage').attr('src', src.replace(/-thumb/,'')); 
    }); 
} 

$('#thumbsDiv').load('thumbs.php?p=2', initThumbs); 
+1

我可能会忍不住也用.live,取决于有多少大拇指/其他现场活动等 – redsquare 2009-08-12 13:29:22

+0

要注意的是活在模糊不工作,重点,mouseenter,mouseleave,change,提交 – 2009-08-12 13:34:27

+0

@redsquare - 好点,如果大拇指被加载,那就是要走的路 - 我会把它扔进去。 – karim79 2009-08-12 13:35:16

0

karim79的回答可能会稍微缩短:

$('img.thumb').click(function() { 
    $('#bigImage').attr('src', $(this).attr('src').replace(/-thumb/,'')); 
}); 

但除此之外,好答案!

0

唯一除了karim79的是:

的情况下的缩略图都放在同一个父内结合在该一方的事件会更好(?优雅)的解决方案,对所有的缩略图结合事件。该事件会传播,因此您可以通过检查事件目标来查找缩略图。

0
$().ready(function() { 

    //get all images from unordered list and apply click function 
    $('ul#myList img').each(function() { 
     $(this).click(function() { 
      $('#mainImage').attr('src', $(this).attr('src').replace('-thumb', '')); 
     }); 
    }); 

});