2011-10-01 90 views
0

我在jQuery的live中遇到了問題。 div one應當在單擊相同容器div的div comment時滑動。正在發生的是每個div one都會滑落,無論其容器如何。我該如何解決?我認爲這是$這個函數,但我不知道如何實現它。

<script type="text/javascript"> 
    $('.one').hide();  
    $('.comment').live('click',function() { 
    if ($('.one').is(':hidden')) { 
     $('.one').slideDown('slow'); 
    } 
    }); 
</script> 

<?php 
    for($i=0;$i<11;$i++) { 
?> 
<div class='container'> 
    <a class='comment'>comment</a> 
    <div class='one'> 
     <textarea style='width:350px;height:100px'>Type text here</textarea> 
    </div> 
    </div> 
<?php 
    } 
?> 
+0

'$( '之一。')'選擇具有類'one'每一個元素,使是可以預料的。 –

回答

2

在這種情況下(從提供信息).live()時並不需要,你可以只使用.click()

你的函數的主體可以是這樣的......

$one = $(this).next('.one'); //select the specific .one div you want 
if ($one.is(':hidden')) { 
    $one.slideDown('slow'); 
} 

你想要的目標只有特定.one DIV要顯示...您的目標.one DIV目前地方。

0

嘗試:

$('.comment').live('click',function() { 
     $(this).siblings('.one').slideDown('slow'); 
    }); 
0
<script type="text/javascript"> 
    $('.one').hide();  
    $('.comment').live('click',function() { 
    var sameone = $(this).next('.one'); 
      if (sameone.is(':hidden')) { 
      sameone.slideDown('slow'); 
      } 
     }); 
</script> 
1

只需使用next()

$('.one').hide();  
    $('.comment').live('click',function() { 
     if ($(this).next('.one').is(':hidden')) { 
      $(this).next('.one').slideDown('slow'); 
     } 
}); 

jsFiddle