Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 23.05.2017, 19:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Mracobes9
Если это вам не подходит, то чего вы еще от меня ждете.
Я ничего не жду, это вы ожидаете помощи на пустом месте.

Смотреть весь ваш сайт, и что-то писать, так это платная работа. Код одной страницы, это html-код с подключениями неких сценариев. И если вы писали некие сценарии в попытках что-то фильтровать, то приведите часть html-кода, ваш JS код фильтрации и поясните что к чему. Иначе возможно долго будете ожидать помощи, если только дождетесь. Не каждый захочет скачивать ваш код, а задавать вопросы здесь, чтобы решить проблему.

Можно же на страницах форума в кратком изложении отобразить суть или это невозможно?
Ответить с цитированием
  #22 (permalink)  
Старый 23.05.2017, 21:45
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Mracobes9 Посмотреть сообщение
Спасибо вам за код, но к сожалению это не совсем то что мне нужно. А нужно сделать так чтобы во время фильтрации отключались те чекбоксы которые приведут к пустому результату
да это не проблема
$("input").change(function() {
        var arr =[];
        var arr2 =[];
        $(".filter input").prop({disabled: true});
        $("#content > *").show();
        $("input:checkbox:checked").each(function(i) {
            arr[i] = '.'+($(this).val());
        });
        for (var j=0; j<arr.length; j++) {
            $("#content .unselected").not(""+arr[j]+"").hide();
        }
        $("#content .unselected:visible").each(function(i) {
            arr2[i] = ($(this).attr('class'));
        });
        var str = arr2.join(' ');
        str = str.replace(/(^|\s+)unselected(?=\s+|$)/g, '');
        arr2 = str.split(" ");

        for (var n=0; n<arr2.length; n++) {
         $('input[value="'+arr2[n]+'"' ).prop({disabled: false});
     }
 });
Ответить с цитированием
  #23 (permalink)  
Старый 23.05.2017, 22:38
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

$(".searchinfo").each(function() {
        var text = $(this).html();
        text = text.replace(/[.]/g, "");
        $(this).parent(".unselected").attr("class", "unselected"+" "+text);
    });

    $("input").change(function() {
        var arr =[];
        var arr2 =[];
        $(".filter input").prop({disabled: true});
        $("#content > *").show();
        $("input:checkbox:checked").each(function(i) {
            arr[i] = '.'+($(this).val());
        });
        for (var j=0; j<arr.length; j++) {
            $("#content .unselected").not(""+arr[j]+"").hide();
        }
        $("#content .unselected:visible").each(function(i) {
            arr2[i] = ($(this).attr('class'));
        });
        var str = arr2.join(' ');
        str = str.replace(/(^|\s+)unselected(?=\s+|$)/g, '');
        arr2 = str.split(" ");

        for (var n=0; n<arr2.length; n++) {
           $('input[value="'+arr2[n]+'"' ).prop({disabled: false});
       }
   });

Вот так будет работать с вашим кодом, только точки из value чекбоксов поубирайте.

можно сразу получить текст у searchinfo и не добавлять классы, только надо переписать строку которая скрывает блоки не содержащие класс, на строку которая будет скрывать родителя searchinfo .unselected, если текст searchinfo не содержит строку...
Ответить с цитированием
  #24 (permalink)  
Старый 24.05.2017, 00:23
Интересующийся
Отправить личное сообщение для Mracobes9 Посмотреть профиль Найти все сообщения от Mracobes9
 
Регистрация: 21.05.2017
Сообщений: 18

Сообщение от j0hnik
Вот так будет работать с вашим кодом, только точки из value чекбоксов поубирайте.
Спасибо большое за помощь)
Ответить с цитированием
  #25 (permalink)  
Старый 24.05.2017, 02:51
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Mracobes9 Посмотреть сообщение
Спасибо большое за помощь)
переписал по феншую, теперь в HTML ничего трогать не надо! даже точки.
$("input").change(function() {
        var arr =[];
        var arr2 =[];
        $(".filter input").prop({disabled: true});
        $("#content .unselected").show();
        $("input:checkbox:checked").each(function(i) {
            arr.push($(this).val());
        });
        for (var j=0; j<arr.length; j++) {
            $("p.searchinfo").not('p.searchinfo:contains("'+arr[j]+'")').parent(".unselected").hide();
        }
        $("p.searchinfo:visible").each(function(i) {
            arr2.push($(this).html());
        });
        arr2 = arr2.join(' ').split(" ");
        for (var n=0; n<arr2.length; n++) {
           $('input[value="'+arr2[n]+'"' ).prop({disabled: false});
       }
   });
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт выравнивания высоты блоков razorg1991 Элементы интерфейса 13 15.01.2017 00:04
Скрипт карусели блоков rozmakc Работа 3 25.07.2016 21:35
Сортировка блоков по параметрам webmanss Элементы интерфейса 17 18.06.2016 20:04
Не работает код, при дублировании блоков! Rockship Элементы интерфейса 8 17.06.2015 11:47
Печать невидимых блоков mixeeff Events/DOM/Window 7 11.03.2009 11:41