2011-09-14 10 views
0

divのIDを使用してコンテンツをスライドダウンする必要があります。現時点では、すべての "fullMessage" divをスライドして内容を表示しているようです。私は.parent().closest()を使用して見ているが、私はIDのアプローチが良いと思った、私は間違っている可能性があります。Jquery - idを使用してslideToggleでコンテンツをスライドさせる

// JS

$('#messageBox .message .subject').click(function(){ 
     var id = $(this).attr("id"); 
     $('.fullMessage #' + id).slideToggle("slow"); 
}); 

// HTML

<div id="messageBox"> 
    <?php foreach ($messages as $message): ?> 
     <div class="message"> 
      <div class="subject"> 
       <a href="" id="<?php echo $message['id']; ?>"> 
       <?php echo $message['subject']; ?> 
      </a> 
     </div> 
    </div> 
    <div class="fullMessage" id="<?php echo $message['id']; ?>"> 
     <?php echo $message['message']; ?> 
    </div> 
    <?php endforeach; ?> 
</div> 

この上の任意のヘルプははるかに高く評価されるだろう:)

+2

<div class="fullMessage" id="message_<?php echo $message['id']; ?>"> 

その後、あなたは、セレクタを変更することができます。 –

答えて

1

あなたのセレクタは、このIDを持つ要素を見つける$('.fullMessage #' + id)ですそれは.fullMessageの子です。

.fullMessageにはIDがあるので、$('.fullMessage#' + id)(空白を削除します)が必要です。すでにIDを使用しているため、.fullMessageはここでは重複しています。

もう1つの注意点として、同じIDを持つ複数の要素を持つべきではありません($('#ID')はIDを持つ最初の要素を取得します)。 .fullMessageのIDをmessage_idのように変更することをおすすめします。あなたは、同じIDを持つ2つの要素を持つべきではありません

$('#message_' + id) 
+0

idとselectorを変更して、扱いました。ありがとうございました:) –

+0

よろしくお願いします! :-) –

関連する問題