2010-01-21 44 views
1

我正在处理overlay + gallery插件。但我陷入了一个困境。当前的代码将用新的代码(wrap.find(“a”)。attr(“href”,url);)替换#main div中的所有URL地址。但我希望它只取代第一个。请请咨询。我希望问题清楚。image onload只改变第一个网址

 <div id="main"> 
      <a href="http://www.capalbosonline.com/images/634-large.jpg" title="Fairfax Gift Basket"><img src="http://www.capalbosonline.com/images/634-large.jpg" alt="Fairfax Gift Basket" id="productimage" /></a> 
      <a href="http://www.refinethetaste.com/html/media/images/2571243744_f1c6b487ff.jpg" title="Fairfax Gift Basket" ><img id="productimage" alt="Fairfax Gift Basket" src="http://www.refinethetaste.com/html/media/images/2571243744_f1c6b487ff.jpg"/></a>  
     </div> 


$(".productthumbs img").click(function() { 
    // calclulate large image's URL based on the thumbnail URL (flickr specific) 
    var url = $(this).attr("src"); 
    // get handle to element that wraps the image and make it semitransparent 
    var wrap = $("#main").fadeTo("medium", 0.5); 
    // the large image from flickr 
    var img = new Image(); 
    // call this function after it's loaded 
    img.onload = function() { 
     // make wrapper fully visible 
     wrap.fadeTo("fast", 1); 
     // change the image 
     wrap.find("img").attr("src", url); 
     wrap.find("a").attr("href", url); 
    }; 
    // begin loading the image from flickr 
    img.src = url; 
// when page loads simulate a "click" on the first image 
}).filter(":first").click(); 

回答

0

变化:

wrap.find("a").attr("href", url); 

要:

wrap.find("a").eq(1).attr("href", url); 

或者你也可以这样做:

wrap.find("a:eq(0)").attr("href", url); 
+0

太感谢你了! – 2010-01-21 04:47:51