2013-07-03 2 views
-1
$(document).ready(function(){ 
    $("#flip").click(function(){ 
    $("#panel").toggle(1000); 
    }); 
}); 

ссылку jsfiddle http://jsfiddle.net/T8t2r/301/не в состоянии показать все клетки тумблера

+2

ID должен быть уникальным. Измените flip на класс. Кроме того, '# =" mytable "{}' не является допустимым селектором CSS. – lifetimes

+0

Идентификаторы уникальны, вам нужно использовать разные идентификаторы для всех ваших элементов, и вам нужно опубликовать лучшие вопросы. – adeneo

ответ

2

Проблема заключается в том, что id должен быть уникальным в DOM и у вас есть несколько элементов с одинаковыми идентификаторами. Это неверно и вызовет эффект, который вы видите: только переключите первый.

Используйте CSS классы вместо

HTML

<tr class="parent"> 
    <td><div class="flip">Cash and Equivalents</div></td> 
    <td><div class="flip">000,000</div></td> 
    <td><div class="flip">000,000</div></td> 
    <td><div class="flip">000,000</div></td> 

</tr> 
<tr class="child"> 
    <td><div class="panel">Cash and Equivalents</div></td> 
    <td><div class="panel">asdasdasd000,000</div></td> 
    <td><div class="panel">000,000</div></td> 
    <td><div class="panel">000,000</div></td> 
</tr> 

JS

$(document).ready(function(){ 
    $(".flip").click(function(){ 
    $(".panel").toggle(1000); 
    }); 
}); 

Мне кажется, что это может быть гораздо проще, хотя, но мне нужно знать, что вы пытаетесь сделать exaccty

+0

Могу я дать каждому тегу отдельный идентификатор и сделать его? coz div, вызывающий ненужные деления –

+0

Фактически я выполняю итерацию в ruby-коде, чтобы генерировать элементы таблицы, поэтому как я могу перебирать jQuery, я новичок в jquery –

+0

@Hrishikesh Sardar: возможно, вы могли бы лучше объяснить свое требование по своему вопросу , Я уверен, что мы можем придумать что-то более простое. –

0

Вы должны использовать атрибут class вместо id. Атрибут id предназначен для одиночного уникального селектора и не предназначен для использования более одного раза. Я изменил ваш код и обновил вашу скрипку здесь: http://jsfiddle.net/T8t2r/302/, чтобы он работал правильно.

0

Идентификатор должен быть уникальным на DOM.

Чтобы получить требуемую функциональность, измените флип как class в html и используйте class селектор.

$(document).ready(function(){ 
    $(".flip").click(function(){ 
    $(".panel").slideToggle("slow"); 
    }); 
}); 

Updated Fiddle

0

Вот скрипка: http://jsfiddle.net/NgTQL/

исправлен HTML panel и flip изменилось к классу:

<table id="mytable" border='1'> 
    <thead> 
     <tr> 
      <th>Year</th> 
      <th>Revenue</th> 
      <th>Expense</th> 
      <th>Profit</th> 
     </tr> 
    <tbody> 

    <tr class="parent"> 
     <td><div class="flip">Cash and Equivalents</div></td> 
     <td><div class="flip">000,000</div></td> 
     <td><div class="flip">000,000</div></td> 
     <td><div class="flip">000,000</div></td> 

      </tr> 

    <tr class="child"> 
     <td><div class="panel">Cash and Equivalents</div></td> 
     <td><div class="panel">asdasdasd000,000</div></td> 
     <td><div class="panel">000,000</div></td> 
     <td><div class="panel">000,000</div></td> 
    </tr> 
</tbody> 
</table> 

JQuery:

$(document).ready(function(){ 
    $(".flip").click(function(){ 
    $(".panel").slideToggle("slow"); 
    }); 
}); 
Смежные вопросы