0

ウェブサイトのポートフォリオ画像ギャラリーを作成していますが、問題が発生しています...アイコンの1つをクリックすると、最初の画像が消えますが(そうなると思われます)、次の画像が開きません...

これが私のコードです:

$(".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

助けてください!!

ありがとうベン

4

2 に答える 2

0

補足として、同じIDを持つ複数の要素を含めるべきではありません(すべてのdivにはIDとして「large-image」があります)。

jQueryは次のようになります。

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

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

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

(最後の行で「、」の代わりに「+」を使用しました)。

それが機能しない場合は、$row['name']が期待どおりの文字列であることを確認してください。

于 2011-07-21T02:00:26.747 に答える
0

はい、厳密に言えば、各HTML要素は理想的には一意のIDを持つ必要があります。

IDのカウンターを追加できる可能性があるため、名前は「large-image-1」、「large-image-2」などになります。もちろん、JavaScript/jQuery関数のカウンターも渡します。

乾杯。

于 2011-07-21T03:02:46.713 に答える