kostyanet

Рейтинг
45
Регистрация
03.06.2015
Должность
design
Интересы
design
designer

Кстати, не обязательно сегрегировать по css. elem.getAttribute('foo'); выдаст значение атрибута foo="one" как и любого другого произвольного.

---------- Добавлено 11.06.2015 в 12:11 ----------

Ayavryk,

и естественно совпадающую по синтаксису с jquery.

Прикол, жиквери не естественный в принципе. Это же тупо объект в который засунут элемент как проперть. И кстати у жиквери нет идентификации по id, только по css.

Кантор-программист - молодец, а вы не поняли что у него речь о практике программирования, о приемах, а не о терминах языка.

Кантор-писатель - "Он заключается в том, что если у нас есть много элементов, события на которых нужно обрабатывать похожим образом, то вместо того, чтобы" - графоман. Пишет катехизисы для тех, кто официальный язык не понимает.

Поэтому "делегирование" - колхоз. Грамотный программист знает про бублинг и капчуринг, про фазы и дерево по которому они звенят. Дополнительных терминов не требуется. Точно так же без делегирования можно получить target и что-то сделать дополнительно с этой инфой. Потому что хтлм это дерево, а деревья всегда самоподобны. Они - фрактал и бифуркация.

---------- Добавлено 11.06.2015 в 12:15 ----------

Можно подумать что повесив прерывание на ячейку таблицы, вам всегда хватит this. В том и затык что чаще всего приходится шерстить и target, и сделав небольшой бублинг в своей голове вы понимаете что лучшим местом куда воткнуть слушателя - будет либо сама таблица, либо ее туловище.

---------- Добавлено 11.06.2015 в 12:29 ----------

Seredniy:
Варианты подгружаются аяксом в формате json.

Следовательно рендер будет дистиллированный, без мусора текстовых нод. Если все сделано правильно, вам остается только отсечь самого родителя полностью сравнив target с this и сразу же запузырить запрос по полученным данным на загрузку контента.

Например рендерится вот так

<nav id="fast-res">

<a h="url-1">Результат поиска 1</a>

<a h="url-1">Результат поиска 1</a>

<a h="url-1">Результат поиска 1</a>

<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.

Seredniy:


Т.е. данные то я получаю, но работать дальше с ними как с обычными хтмл-элементами не могу, как быть и куда копать?

Первое выражение - 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/#/

Да, может быть это будет откровение, но в любом современном браузере встроен конструктор сайтов. Смотрите картинку.

ЗЫ Тут оказалась кошмарная верстка, каждый пост со своими инлайновыми стилями, обалдеть.

gif inspector.gif
Всего: 913