Odisseya, "При каких условиях будете использовать гриды?" - в условиях требования поддержки платформ, которые поддерживают гриды. Если все целевые платформы поддерживают %feature_name% (в данном случае css grid layout), то использование преимуществ этой технологии сильно упрощает и ускоряет разработку. Если не все целевые платформы поддерживают, то некто компетентный (заказчик, отдел маркетинга, вы) решает, что выгоднее и быстрее: писать полифилы или вообще отказаться отказаться от %feature_name% в пользу более простой и шире поддерживаемой технологии.
"тут другие критерии и ориентир на глобальную статистику использования браузеров" - мне кажется это ничего не меняет: если отдела маркетинга у вас нет, то сами решаете насколько целесообразно использование той или иной технологии основываясь на глобальной статистике browser usage и вашей локальной маркетинговой статистике. Вам ниже написали, что стоит быть прагматиком; так вот представьте что вы смотрите на статистику использования браузеров, видите что популярные браузеры делят рынок почти на равные части, и таким образом считаете, что при разработке шаблонов целесообразно использовать последние фичи. А потом вдруг выясняете, что конкретно на вашем рынке большую часть прибыли приносит, к примеру, яблочная часть аудитории, причём не последних версий, а даже и старые версии. Если в таких условиях вы будете использовать самые современные технологии, то вы охватите большую часть используемых браузеров, но потеряете значительную часть потенциальной прибыли, т.к. не учли особенности рынка. Это всё как пример.
В каком смысле считаете приемлемым? Это решает не разработчик, а заказчик на основе своих требований к поддержке. Также часто подобными исследованиями занимается отдел маркетинга, который решает целесообразно ли выделять время на поддержку той или иной платформы. Разработчик только получает готовые инструкции - нужна поддержка IE6, 7 и т.д.
Роман Кузнецов, почему не по теме, я из этого наконец понял о чем речь. Только не смог на айфоне воспроизвести - взял ваш пример, попытался покрутить и подумал что клик будет срабатывать при прокрутке, но не сработал ни разу. Так что видимо у вас какой-то специфический случай, думаю вам стоит сделать пример в котором вы воспроизведёте проблему.
Роман Кузнецов, ну, вы же понимаете, что событие click это просто фича которую вам предоставляет браузер? Разработчики браузера могли бы вполне обойтись событиями mousedown и mouseup, а вам бы как пользователю пришлось бы самому реализовывать click как последовательные mousedown и mouseup на одном и том же элементе (такого не произошло вероятно из-за того что click есть в спецификации). С touch-событиями немного другая история: tap в спецификацию не вошёл, зато туда вошли touchstart, touchend, touchcancel и touchmove.
"TAP это событие, только другое, событие касания пальцев" - фишка в том, что других событий нет. Есть только те которые объявлены в спецификации, о них вы можете почитать по ссылке. А вы дали мне ссылку на событие tap из библиотеки jQuery mobile, там она реализована кастомно; с вероятностью в 99% что это (как я описал выше) просто touchstart и touchend на одном элементе. Кстати, tap в вашем бы примере тоже работал если бы вы подключили jQuery mobile.
А вы уверены, что вам нужен tap? Разве с кликом бывают проколы? Просто насколько я знаю все тачи по спецификации обязаны эмулировать click, таким образом вам вполне должно быть достаточно click.
ЗЫ: с предпоследнего айфона клик в вашем примере нормально работает, проверено только что.
Если говоря ajax сайт вы имеете в виду SPA, то наиболее просто и быстро будет перейти на одно из существующих решений для SPA, их много в гугле. А если вам и вправду интересно велосипедировать, то стоит
поискать утечку памяти, ну или показать код метода destroy.
grom111, в этом видео нету того, что вы описали в вопросе: вы пишете, что лектор создаёт UI.prototype.addToList, а по факту лектор создаёт разные сущности UI и Book, и единственной связью между ними является специальный метод addBookToList. Метод clearFormListclearFields также не имеет отношения к классу Book. То есть конечно описанное вами есть, но вы чуть-чуть переврали как было на самом деле: лектор не имел в виду, что кто-то от кого-то будет наследоваться; он как раз хотел разделить сущности на "подневольные" и управляющие: Book и UI.
А логика как минимум в том, что книга это предмет и у неё нет ни возможностей, ни прав добавлять себя в какие-либо списки, поэтому управлением занимается сторонний класс-контроллер User Interface.
Vanya Huk, и это очень интересно, т.к. JSON.parse не возвращает пустую строку ни при каких обстоятельствах)) Так что либо вы показываете JSON и объясняете термин "пустота", либо я не знаю какой помощи вы ждёте.
Golcberg, я повторяю - напишите конкретный непонятный для вас пункт. Вы понимаете, что ваша задача состоит из нескольких этапов? Каждый из этих этапов сам по себе элементарный, осталось только выяснить с каким проблема у вас. Вы не можете создать элемент или вы не можете выбрать нужные элементы из DOM или что? И пожалуйста не отвечайте "непонятно как написать на jquery", эта мантра вряд ли мотивирует кого-то здесь выдать вам готовый код только потому что вам лень расписать задачу.
Golcberg, "как это сделать на jquery неясно, чтобы при вводе в input появилось в отдельном поле список категорий искомых" - это не конкретный пункт. Для того чтобы в отдельном поле появился список категорий надо 1) сотворить поле (блок, элемент), и 2) в этот элемент положить список выбранных категорий. Какой из этих пунктов не поддаётся реализации?
"тут другие критерии и ориентир на глобальную статистику использования браузеров" - мне кажется это ничего не меняет: если отдела маркетинга у вас нет, то сами решаете насколько целесообразно использование той или иной технологии основываясь на глобальной статистике browser usage и вашей локальной маркетинговой статистике. Вам ниже написали, что стоит быть прагматиком; так вот представьте что вы смотрите на статистику использования браузеров, видите что популярные браузеры делят рынок почти на равные части, и таким образом считаете, что при разработке шаблонов целесообразно использовать последние фичи. А потом вдруг выясняете, что конкретно на вашем рынке большую часть прибыли приносит, к примеру, яблочная часть аудитории, причём не последних версий, а даже и старые версии. Если в таких условиях вы будете использовать самые современные технологии, то вы охватите большую часть используемых браузеров, но потеряете значительную часть потенциальной прибыли, т.к. не учли особенности рынка. Это всё как пример.