1

私のページでは、jquery addclass と remove class 機能を使用して、選択した画像の境界線を追加しました。しかし、画像は for ループ内にあります。だから私にはうまくいかず、さまざまなコーディングで自分自身を試しました。しかし、期待した結果は得られませんでした。私が使ったコーディング

for ループ内の 4 つの画像のリスト

<div id="containerborder">
        <?php foreach ($images as $image) { ?>

        <a href="javascript:;" title="<?php echo $heading_title; ?>" class="colorboxs" rel="<?php echo $image['popup'];?>"onclick="document.getElementById('image').src=this.rel"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="<?php echo $image['popup']; ?>" onclick="swapborder(this.id);"/>
        </a>
        <?php } ?>

JQuery 関数

<script>
 $(function() { 
 $('#contianer a').click(function() { return swapborder(this); }); 
 }); 
 // 
 function swapborder(clickObject) {
 var currentId=clickObject; 
 alert(currentId);
 $('#containerborder a').each(function() { 
 if ($(this).attr('id')==currentId) { 
 $(this).addClass('active-class'); 
 } 
else { $(this).removeClass('active-class'); } 
 }); 
 return false; 
 } 
 </script>

アラートで ID を表示します。しかし、その後$('#containerborder a').each(function() { が機能せず、画像の境界線が適用されません。誰かがこの問題を解決するのを手伝ってくれますか?事前に感謝します

4

1 に答える 1

1

あなたは書くことを意味しますvar currentId = $(clickObject).attr('id')

ただし、これを行う方がはるかに簡単です。

function swapBorder(elem) {
    $("#containerborder a").removeClass('active-class');
    $(elem).addClass('active-class');
}
于 2013-02-21T05:25:27.220 に答える