jQuery. каждая проблема - PullRequest
       11

jQuery. каждая проблема

1 голос
/ 06 декабря 2009

сжимать мозг и нужна помощь,

У меня есть таблица с 6 строками, которые могут быть скрыты или видимы в зависимости от того, установлен ли флажок. Эта подпрограмма .each прекрасно работает с одной маленькой проблемой - когда установлен последний флажок (val = "5") и вы нажали кнопку обновления, строка 6 (с class = "hide5") скрыта. Это происходит только в последнем флажке - любой другой флажок остается видимым.

$(document).ready(function($) {
    $('input:checkbox').each(
        function(rowIndex){
            if($('#view'+rowIndex).is(':checked') == true){
                $('.hide'+rowIndex).show();
            }
            else if($('#view'+rowIndex).is(':checked') == false){
                $('.hide'+rowIndex).hide();
            }
        }
    );
    $('input:checkbox').click(function () {                             
        var row = this.value;
        $('.hide' + row).toggle();
    });
}); 

Источник HTML для строки 6 th :

<tr class="hide5">
  <td width="175" align="center" style="padding:1px 0px 11px 0px"><br />
    <span>Total</span><br />
    <span>&nbsp;</span><br />
  </td>
  <td width="175" align="center">
    <input class="auto" type="text" id="bwPound" size="18" alt="p8c3pvS" />
  </td>
  <td width="175" align="center">
    <input class="auto" type="text" id="bwPound" size="18" alt="p8c3pvS" />
  </td>
</tr> 

Заранее спасибо за помощь

Боб Кнот

Ответы [ 2 ]

1 голос
/ 06 декабря 2009

Флажок имеет идентификатор «View5», но JS ссылается на 'view'+rowIndex. Идентификаторы чувствительны к регистру .

1 голос
/ 06 декабря 2009

Попробуйте это:

$(document).ready(function($) {
    $('input:checkbox').each(function(rowIndex){
        var $row = $(this);
        if ($row.is(':checked')){
            $('.hide'+rowIndex).show();
        } else {
            $('.hide'+rowIndex).hide();
        }
    });
    $('input:checkbox').click(function () {                             
        var row = this.value;
        $('.hide' + row).toggle();
    });
});
...