2011-07-21 57 views
0

我正在为我的网站创建一个组合图像库,但我遇到了一些麻烦...当我点击其中一个图标的第一个图像消失(这就是想要发生),但下一个图像将无法打开......帮助jQuery图像库

继承人我的代码:

$(".portlink").click(function() { 
    $(".large-image").addClass("hidden"); 

    var $alt = $(this).attr("alt"); 

    $(".", $alt).removeClass("hidden"); 
}) 

而且我的HTML/PHP ...

function portfolio() { 
    $sql = "SELECT * FROM db ORDER BY id DESC"; 
    $res = mysql_query($sql) or die(mysql_error()); 

    while($row = mysql_fetch_assoc($res)) { 
    ?> 

     <div id="large-image" class="<?php echo $row['name'] ?> large-image hidden"> 
      <a href="<?php echo $row['website_address'] ?>"><img src="img/uploads/<?php echo $row['website_image'] ?>" alt="" /></a> 
     </div> 
    <?php 
    } 
} // End portfolio 

function portfolio_nav() { 
    $sql = "SELECT * FROM db ORDER BY id DESC"; 
    $res = mysql_query($sql) or die(mysql_error()); 

    while($row = mysql_fetch_assoc($res)) { 
    ?> 
     <div class="workbox"> 
      <div class="background pngfix"> 
       <a class="portlink" alt="<?php echo $row['name'] ?>" href="#"><img src="img/uploads/<?php echo $row['website_image'] ?>" alt="" /></a> 
      </div> 
     </div> 
    <?php 
    } 
} // End portfolio 

请帮助!

感谢 本

回答

0

正如一个侧面说明,你不应该有相同的ID(所有的div有“大形象”为ID)的多个元素。

我觉得你的jQuery应该是这样的:

$(".portlink").click(function() { 
    $(".large-image").addClass("hidden"); 

    var alt = $(this).attr("alt"); 

    $("." + alt).removeClass("hidden"); 
}) 

(在最后一行用一个 '+' 而不是 '')。

如果这不起作用,请按照您的预期检查$ row ['name']是否为字符串。

0

严格来说,严格来说,每个HTML元素理想地应该具有唯一的ID。

你可以为ID添加一个计数器,所以名字可以是“large-image-1”,“large-image-2”等等,当然也可以传递计数器给JavaScript/jQuery函数。

干杯。