spilden01, добавьте атрибут alt для удобства, чтобы не парсить текст.
<input type="checkbox" onclick="filter(this)" alt="комедия">Комедия <input type="checkbox" onclick="filter(this)" alt="драма">драма function filter(e) { var a = []; $(e).parent().find('input').each( function() { if ( this.checked ) { a.push( $(this).attr('alt') ); } }); var xfield = a.join('|'); // <- ВОТ ТУТ ПОПРОБОВАТЬ '||', '&&', '&', '+' if ( xfield != '' ) { ShowLoading("Идет сортировка"); $.get('/xfsearch/'+encodeURIComponent(xfield)+'/', function(data){ HideLoading("Завершено"); $("#dle-content").html(data); }); } }
Немного некорректно я выразился. Имелся ввиду минимализм конструкций к инструменту.
Аналогия - минимализм в SQL запросе. Мы же не смотрим на тяжесть и размер движка БД. Важен результат ну и скорость.
C MVC не знаком, а вот с jQuery поздно познакомился - жалею. Испохабили его применение не нужными свистельками и перделками на страницах. А в плане отсортировать/подсветить/спрятать/показать информацию на стороне клиента он очень хорош.
Язык преобразования XSLT - вот где избыточность. У неподготовленного юзера может случится диссонанс от погружения в него. Например, когда переменные не могут изменяться вообще, а повторы текстовых цепочек "похожих на $селекторы" с небольшими изменениями присутствуют постоянно. Встречал примеры, где сами разработчики языка не понимали процессов преобразований. Но это работало. Его конструкции по выборке данных могут дать фору базам данных. За это он мне очень нравится, как тяжёлый и избыточный, но отличный инструмент.
О как! Вы просите помощи, но умалчиваете о конечном результате.
У меня рука не поднимается дать пример в котором количество галок = количеству запросов к серверу. Если 10 пользователей проставят 20 галок? Вас за ДДОС забанят, а мне сервер жалко.
Чтоб галки оставались уберите return false.
Пример url мульти запроса покажите.
Это логика.
Ограничение путешествия по дереву вверх не является повтором "использование текстового идентификатора". Это новая задача внутри первой с совпадающими условиями. И мой логический атеизм поощряет минимализм в скриптовых конструкциях. Он же считает jQuery не бескультурной js панацеей, а обычным инструментом.
Сейчас голова свежая и исключить вложенные элементы, в данном примере, можно jquery функцией без перечислений и самописной:
<div id="div"> <a href="#link1"> <img src="/img/chart_area.png" />link1<b>bold<i>italic</i></b> </a> ... </div> $('#div').click( function(e) { if ( ! $(e.target).is('a') && ! $(e.target).parents('#div a').length ) { $(this).toggleClass('yellow'); } });
Вот теперь понимаю, что в $селекторе.click() такие условия невозможно было задать.
kostyanet, решение с target, как по мне, это лучший вариант. Благодарю Вас.
if ( $(e.target).is(':not(a)') ) { $(this).toggleClass('yellow'); }
Если кто возьмёт идею, то тут есть минусы. Если в ссылке <a> есть элементы, то их тоже придётся указывать и "давить". Например <img>
<a href="#link1"><img src="/img.jpg" />link1</a> if ( $(e.target).is(':not(a,img)') ) { $(this).toggleClass('yellow'); }
Если я правильно понял, то Вы предлагаете делать второй обработчик на <a> и в нём stopPropagation() "давить" первый. Первый был на <div>.
Благодарю за идею. Не пробовал такой вариант, но возьму на вооружение.---------- Добавлено 16.08.2015 в 22:11 ----------RiDDi, Благодарю!
Реально под вечер туплю. Эта строчка красивее и быстрее моей
if ( ! $(e.target).is('a') ) { ... }
Дать команду php -v, если после версии есть (cli) - можно запускать.
В CLI скрипт будет работать пока сам не остановится или не прервут. set_time_limit(0) бесполезен. Убедиться можно командой php -r 'sleep(600);', что даст 10 минут работы без нагрузки.
Проще запускать файл php -f myfile.php без всяких первых строк #!/usr/bin/php а сразу <?...?>
Нагрузка - как написан скрипт. Может и 100% ядра на процесс съесть.
За время max_input_time и max_execution_time успеваете файл загрузить? Попробуйте увеличить. И в apache Timeout.
Solmyr, с Autofill народ на stackoverflow использует задержку setTimeout 200-250мс.
Если хотите заморочиться, то на гитхабе есть autofill-event с копирайтом гугла.