jQuery / PHP:如何使slideToggle只打开一行而不是全部?

时间:2012-09-12 13:16:52

标签: jquery events row slidetoggle

我的桌面有一个小问题,用DIV编码。如果我点击一行,它会打开每一行,但我只想打开我点击的那一行,逻辑上。这是我的例子:

http://jsfiddle.net/autodidact/QPP5S/11/

问题代码

<div class="table">
<div class="table_headline">
<div class="cell_1">When?</div>
<div class="cell_2">What?</div>
<div class="cell_3">Who?</div>
<div class="cell_4">Where?</div><br>
</div>  

<div class="row">
<div class="cell_1">Date</div>
<div class="cell_2">Concert</div>
<div class="cell_3">Artist #1 + Artist #2 + Artist #3</div>
<div class="cell_4">Venue</div><br>
</div>
<div class="info">Infos</div>

<div class="row">
<div class="cell_1">Date</div>
<div class="cell_2">Concert</div>
<div class="cell_3">Artist #1 + Artist #2 + Artist #3</div>
<div class="cell_4">Venue</div><br>
</div>
<div class="info">Infos</div>

<div class="row">
<div class="cell_1">Date</div>
<div class="cell_2">Concert</div>
<div class="cell_3">Artist #1 + Artist #2 + Artist #3</div>
<div class="cell_4">Venue</div><br>
</div>
<div class="info">Infos</div>
</div>

<script>$(document).ready(function() {
$('.row').on('click', function() {
    $(this).closest('.table').find('.info').slideToggle();
})
})
</script>

编辑:我正在使用PHP来获取所有活动。所以小提琴代码只是一个例子。

编辑#2:添加了问题代码

3 个答案:

答案 0 :(得分:2)

您只需将.closest('.table').find('.info')替换为.next('.info')

演示:http://jsfiddle.net/8QqCh/

您选择的是.info类的所有元素,而不仅仅是下一个元素。

查看.next()

的jQuery文档

答案 1 :(得分:2)

改变这个:

$(this).closest('.table').find('.info').slideToggle();  

为此:

$(this).next().slideToggle();

答案 2 :(得分:1)

请尝试将其作为jquery选择器:

$('.row').on('click', function() {        
    $(this).next('.info').slideToggle();  
})