jquery не селектор с .data - PullRequest
       5

jquery не селектор с .data

0 голосов
/ 07 сентября 2011

Я не могу понять, что я делаю неправильно с помощью следующего кода:

            $('#side_categories #sourcestoggle ul#side_categories_prog .showonly').click(function () {
        var cattest2 = $(this).data('dealcat'); //get the category from the clicked button
        $('#listings .deal:not(:has(.deal[data-dealcat*="' +cattest2+ '"]))').addClass('filtered');
        $('#sourcestoggle ul#side_categories_prog li .check_box input:not([data-dealcat*="' +cattest2+ '"]').removeAttr('checked');
        $('#listings .deal[data-dealcat*="' +cattest2+ '"]').removeClass('filtered');
        $('#dealcount .counter #showingval').html(parseInt($('#listings .deal:visible').size()));
        });

он работает, чтобы показать ТОЛЬКО выбранную категорию на основе data-dealcat, однако он также снимает все флажки, я не могу понять, как сохранить текущий флажок. Так как я новичок в jquery (и вообще пишу код), я почти уверен, что код довольно небрежный, но он по-прежнему работает по большей части, только флажок, на котором есть ссылка «only», не остается проверенным .

Спасибо всем заранее!

edit: приведенный выше код теперь сохраняет первый флажок, но когда вы нажимаете другие, он ничего не делает.

1 Ответ

1 голос
/ 07 сентября 2011

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

$('#side_categories #sourcestoggle ul#side_categories_prog .showonly').click(function () {
        var cattest2 = $(this).data('dealcat'); //get the category from the clicked button
        var checked = $('#sourcestoggle ul#side_categories_prog li .check_box input.deal[data-dealcat*="' +cattest2+ '"]').is(':checked');

        $('#listings .deal:not(:has(.deal[data-dealcat*="' +cattest2+ '"]))').addClass('filtered');

        $('#sourcestoggle ul#side_categories_prog li .check_box input:not(.deal[data-dealcat*="' +cattest2+ '"])').removeAttr('checked');

        $('#sourcestoggle ul#side_categories_prog li .check_box input.deal[data-dealcat*="' +cattest2+ '"]').attr('checked', checked);

        $('#listings .deal[data-dealcat*="' +cattest2+ '"]').removeClass('filtered');
        $('#dealcount .counter #showingval').html(parseInt($('#listings .deal:visible').size()));
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...