JQuery Checkall не влияет на проверенные элементы - PullRequest
1 голос
/ 16 сентября 2011

У меня есть несколько флажков, которые добавляют класс «отфильтрованный» к LI с определенным атрибутом данных (который есть и в LI, и в флажке), когда снят флажок, чтобы скрыть непроверенные источники / категории.Я добавил кнопку галочки выше, и она работает, чтобы установить флажки для всех флажков, однако, это не влияет на элементы, которые были скрыты, когда я устанавливал / снимал флажки напрямую.Можно ли привязать отображение 1 деления к значению флажков в другом?

Например, при загрузке страницы проверьте, установлен ли флажок с той же категорией данных, а затем отобразите содержимое?возможно я должен сделать это с php?

кодом чекбокса для добавления / удаления отфильтрованного класса onclick:

$("#side_categories #sourcestoggle ul#side_categories_prog li .check_box input").click(function () {
    var dealcat = $(this).data('dealcat'); //get the category from the clicked button
    var deallistcount = $('#deals .deal:visible').size();
    if (deallistcount < 0) {
        $('#deals .noresults').show();
    } else {
        $('#deals .noresults').hide();
    }
    if ($('#' +dealcat+ ':checked').val() !==undefined) {
        $('#deals .deal[data-dealcat*="' +dealcat+ '"]').removeClass('filtered');
        $('#dealcount .counter #showingval').html(parseInt($('#deals .deal:visible').size()));
    } else {
        $('#deals .deal[data-dealcat*="' +dealcat+ '"]').addClass('filtered');
        $('#dealcount .counter #showingval').html(parseInt($('#deals .deal:visible').size()));
        var deallistcount = $('#deals .deal:visible').size();
        if (deallistcount < 1) {
            $('#deals .noresults').show();
        } else {
            $('#deals .noresults').hide();
        }
    }
});

мой код для проверки:

$('#side_categories #sourcestoggle .sources #sources_controls .sources_checkall').click(function(){
    $('#side_categories #sourcestoggle ul#side_categories_prog li .check_box input:checkbox').attr('checked','checked');
});

Я понимаючто с помощью checkall / uncheckall самым простым способом было бы просто удалить все классы, отфильтрованные из #deals, и наоборот, но я пытаюсь выяснить, есть ли «более умный» способ сделать это.

html списков ul / li:

  <ul id="deals">
    <li data-date="26800" data-discount="50" data-value="400" data-price="200" id="9752" data-dealcat="Provider" data-category="Category" class="deal">
      blah blah blah
    </li>
  </ul>

Categories / checkbox html:

  <ul id='side_categories_prog'>
  <li class='programname'>
  <div class='check_box'>
  <input type='checkbox' value='2' name='sources1' id='programname' checked='checked' data-dealcat='programname'>
  </div>
  <label for='progname'>programname</label>";
  </li>
  </ul>

Данные для флажков заполняются php и через jquery контролирует #deals .dealкоторые также динамически заполняются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...