0

我的表有一个小问题,用 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:添加了问题代码

4

3 回答 3

2

您可以简单地替换.closest('.table').find('.info').next('.info').

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

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

检查.next()的 jQuery 文档

于 2012-09-12T13:23:58.630 回答
2

改变这个:

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

为了这:

$(this).next().slideToggle();
于 2012-09-12T13:24:19.237 回答
1

试试这个作为 jquery 选择器:

$('.row').on('click', function() {        
    $(this).next('.info').slideToggle();  
})
于 2012-09-12T13:27:52.317 回答