Кстати, не обязательно сегрегировать по css. elem.getAttribute('foo'); выдаст значение атрибута foo="one" как и любого другого произвольного.---------- Добавлено 11.06.2015 в 12:11 ----------Ayavryk,
Прикол, жиквери не естественный в принципе. Это же тупо объект в который засунут элемент как проперть. И кстати у жиквери нет идентификации по id, только по css.
Кантор-программист - молодец, а вы не поняли что у него речь о практике программирования, о приемах, а не о терминах языка.
Кантор-писатель - "Он заключается в том, что если у нас есть много элементов, события на которых нужно обрабатывать похожим образом, то вместо того, чтобы" - графоман. Пишет катехизисы для тех, кто официальный язык не понимает.
Поэтому "делегирование" - колхоз. Грамотный программист знает про бублинг и капчуринг, про фазы и дерево по которому они звенят. Дополнительных терминов не требуется. Точно так же без делегирования можно получить target и что-то сделать дополнительно с этой инфой. Потому что хтлм это дерево, а деревья всегда самоподобны. Они - фрактал и бифуркация.---------- Добавлено 11.06.2015 в 12:15 ----------Можно подумать что повесив прерывание на ячейку таблицы, вам всегда хватит this. В том и затык что чаще всего приходится шерстить и target, и сделав небольшой бублинг в своей голове вы понимаете что лучшим местом куда воткнуть слушателя - будет либо сама таблица, либо ее туловище.---------- Добавлено 11.06.2015 в 12:29 ----------
Следовательно рендер будет дистиллированный, без мусора текстовых нод. Если все сделано правильно, вам остается только отсечь самого родителя полностью сравнив target с this и сразу же запузырить запрос по полученным данным на загрузку контента.
Например рендерится вот так
<nav id="fast-res">
<a h="url-1">Результат поиска 1</a>
</nav>
Куда тут еще можно нажать кроме ссылки и самого родителя если css все-таки проворонит? Чтобы css ворон не считал, не используйте margin'ы - только padding'и. + box-sizing:border-box и будет вам щасье :)
Тем не менее в функции: if(url=e.target.getAttribute('h')){} даст бетонную гарантию попадания в цель.
У жикверистов нет учебников, у них - культура. Они смотрят как делают и повторяют те же движения. В нативном скрипте пришлось бы написать больше и возник бы мотив подумать, а стоит ли трясти. В либе думать не надо, ибо обж фор ич функтион и вперде.
Что еще за делегирование? В смысле нет таких терминов в природе, а жикверные для жикверистов.---------- Добавлено 11.06.2015 в 11:22 ----------Понял, это не делегирование конечно же, а уровень абстракции. Развесить прерывания на каждый чих - уровень низкий. Повесить одно на контейнер с подконтрольным барахлом - повыше.
Обалдеть.
Приходилось видеть удивление людей не видевших php-скриптов с continue, а теперь сам удивляюсь что и такое есть в php.
Кто сказал что народ ищет по картинкам? Народ не ищет по картинкам и никогда не будет этого делать, потому что есть такие сервисы как ин100грамм и пиндерест например. Которые просто засирают все подряд, не прорваться.
Вывод ошибок стоит в 0 и ничего не видно. Или не видно из-за особенностей хтмля когда ошибка валится в рендере. Только в кодах ее можно найти. Если ошибка класса "мы вас предупредили" конечно. Ошибка класса "шеф, усе пропало" кончает хтмл в том месте, в котором все пропало.
UPD. Двоеточка что-то означает, с ней прокатывает, а без нее вопит.
UPD: Наверно за альтернативный синтаксис принимается.
Или за кусок тернарного оператора.
Это паттерн MVC гадит. Он устроен не в пространстве, а во времени. Я сам тыкался по мануалам когда пытался разобраться с чем едят. Они едят их с картинками типа вот сюда стрелка, и отсюда стрелка и между еще стрелка...
Так вот, я понял и вам расскажу.
M - модель. Это фаза моделирования какой-то сущности. Например сущности "газетная статья". Вы же видели статьи, у вас есть метафора, ее надо реализовать, значит собрать свойства статьи, собрать их в кучу, затем заполнить значениями.
Например статья как модель это: текст заголовка, имя автора, дата выхода, текст подзаголовка, параграфы текста статьи, клише картинок.
Обтекание картинок текстом, цвет плашек, интерлиньяж, кернинг, трекинг, кегль, буквица, лигатуры - НЕ входят в модель. Потому что они входят в
V - представление - фазу рендера.
Поэтому MVC и называется паттерном, или шаблоном программирования. Точно так же как в каком-нибудь Кварке вы открываете шаблон и вставляете туда все эти данные из статьи автора, а потом можете применить другой шаблон верстки и все поменять - точно так же в программировании разделив данные и оформление можно связывать произвольный набор данных с произвольным набором оформлений через
C - контроллер - фазогенератор.
Который технически просто функция или метод или вообще команда где угодно в любом месте. Отношение n:M в реляционных базах это стандартное отношение для задач типа сколько у клиента заказов.
Клиентов - много? Много. Заказов много? - Много. Как теперь связать таблицу Клиенты с таблицей Заказы так, чтобы сохранить предикат баз данных - факт хранится в одном месте? Нужна связующая таблица, Заказы_Клиентов. В которой будет 3 поля: Собственный_ИД, Клиент_ИД и Заказ_ИД.
Обычно контроллер связывает одну модель с одним представлением. Разумеется может и больше.
Так вот граница фаз моделирования и рендера проходит по контроллеру.
Вы не можете изменить конструкцию стены на этапе оштукатуривания. Потому что рендер в переводе с английского - штукатурка, раствор штукатурки или сам процесс штукатурки. В общем в фазе рендера уже нельзя ничего поменять в модели и поэтому модель должна позаботиться обо всех связях до того как загнать скрипт в представление.
Технически и модель и представление могут быть просто файлами как в примере выше. Их загружают, они получают тот же scope, метафора инклюлды - это копипаста. Инклюда может возвращать значения, это очень приятная фича, хотя кажется бессмысленной. ---------- Добавлено 11.06.2015 в 09:26 ---------- Почему MVC а не MCV? На этот контроллер много нареканий. Вы легко заметите как легко можно туда напихать запчастей от модели и от представления, ну, типа, а чо, ну все сразу предусмотрел и вперде. В итоге у вас жыыырный контроллер и полудохлые ни на что не годные модели. Это верный призрак плохого полиморфизма.
Дело в том что кроме кустарного производства моделей и штукатурки, в котором мы с вами находимся, существует квази- или полностью индустриальные производства. И вам приходится приделывать карбюратор от Жигулей к Запору. Где лучше всего сделать переходник? КОнечно в контроллере. Так они и жыреют. ---------- Добавлено 11.06.2015 в 09:40 ---------- Теперь вы легко увидите пресловутый MVC во всем с чем сталкивались и не задумывались. Например <div class="foo-bar">Лорем ипсум долор си амет...</div> - это контроллер, который соединяет данные и рендер. Самым же вопиющим примером паттерна отделения мух от котлет признан XML. Настолько вопиющим, что осилить его могут только мощные заводы по производству софтверных сущностей.---------- Добавлено 11.06.2015 в 09:50 ----------Придерживайтесь MVC всегда, даже когда есть рабочая теория что для этой модели другого рендера никогда не будет. Пишите 2 метода в одном классе - метод модели и метод рендера и пусть даже этот рендер вызывает жту модель - убрать вызов и перенести его в контроллер будет гораздо легче, чем переписывать сто килограммов лапши.
Применительно к хтмлю MVC взаимодействует и в пространстве. Например если вы захоте поменять title документа из вьюхи, то скорее всего разочаруетесь, поскольку тайтл уже в браузере пока ваш скрипт дошел до подключения файла из папки view.
Первое выражение - true, второе - лошь.
Скорее всего у вас как любого жиквериста принято развешивать события на всех членов конгресса. Сделайте так
var func=function(e){ var el=e.target; if(el!==this){ /* делаем полезное */ } }; parent_element.addEventListener('click',func);
Если у вас могут стырить картинки, это не значит что могут продать то же самое. А вот если могут продать то же самое вместо вас, значит найдут картинки и без вас и тогда все поменяется. Дело, конечно же, не в картинках, это был бы маркетинговый нонсенс, что продает тот, у кого есть картинка. Дело в маркетинге. Когда вы его осилили у вас и картинки не будут тырить - не нужны они будут никому больше, поскольку все равно не продашь.
По технике. В теории травить не обязательно если в ключевой цвет выкрашены только значимые пикселы. Меняйте оттенок. В RGB это сделать непросто, придется сначала определить порог и молотить по всему диапазону, поэтому конвертят в HSL - http://stackoverflow.com/questions/26894858/dynamically-animating-hue-shift-on-canvas-image
victorpavloff, как угодно напишите. Посмотрите как уже сделано, если сочтете что сделано криво, сделайте по-своему. Это же js, тут почти нет ограничений. Кроме того есть готовые библиотеки для презентаций.
javascript presentation
Например самая как говорят популярная http://lab.hakim.se/reveal-js/#/
Да, может быть это будет откровение, но в любом современном браузере встроен конструктор сайтов. Смотрите картинку.
ЗЫ Тут оказалась кошмарная верстка, каждый пост со своими инлайновыми стилями, обалдеть.