Комментарии 30
Event: undefined
Ссылка на демонстрацию, так удобнее:
А можете в демонстрации сделать пример как стандартный click() работает без вашего плагина? Для сравнения. А то пока неочевидны преимущества.
А можете в демонстрации сделать пример как стандартный click() работает без вашего плагина? Для сравнения. А то пока неочевидны преимущества.
По идее отработка touchstart/touchend нивелирует задержку срабатывания ивента click в 300 миллисекунд, что думаю, вполне себе преимущество.
Не, я не о том. Я верю что этот плагин очень полезен и имеет преимущества.
Я открыл ссылку автора на девайсе — вижу что кликается. Но мне не с чем сравнить, есть задержка или нет, и насколько эта задержка раздражает. Если ниже был бы другой прямоугольник со стандартным кликом (с задержкой) — преимущества были бы более наглядны.
Я открыл ссылку автора на девайсе — вижу что кликается. Но мне не с чем сравнить, есть задержка или нет, и насколько эта задержка раздражает. Если ниже был бы другой прямоугольник со стандартным кликом (с задержкой) — преимущества были бы более наглядны.
Сделал. Так и правда нагляднее.
Также хочу описать некоторые особенности: зажатие ЛКМ, зажатие ЛКМ и перетаскивание, нажатие колесиком и множественные нажатия — событие «click» выполняется, «tap» — нет.
Также хочу описать некоторые особенности: зажатие ЛКМ, зажатие ЛКМ и перетаскивание, нажатие колесиком и множественные нажатия — событие «click» выполняется, «tap» — нет.
Hammerjs не подошёл?)
Что-то не работает.
Пробовал на двух устройствах (телефон Android 4.0.3 и планшет Android 4.1.1) и в четырех браузерах (системный, Opera Classic, Firefox, UC).
Событие click везде работает нормально.
Правый квадрат вашей демки как-то очень неохотно, через раз, срабатывает только на 2-х комбинациях из 8-ми: телефон/системный и планшет/опера.
Во всех прочих комбинациях многократные и настойчивые тапы не привели ни какому результату.
Пробовал на двух устройствах (телефон Android 4.0.3 и планшет Android 4.1.1) и в четырех браузерах (системный, Opera Classic, Firefox, UC).
Событие click везде работает нормально.
Правый квадрат вашей демки как-то очень неохотно, через раз, срабатывает только на 2-х комбинациях из 8-ми: телефон/системный и планшет/опера.
Во всех прочих комбинациях многократные и настойчивые тапы не привели ни какому результату.
Андроида, к сожалению, под рукой нет. Завтра на работе все проверю.
Тестировал на iPhone, iPod, iPad и в Chrome DT.
Тестировал на iPhone, iPod, iPad и в Chrome DT.
Подтверждаю! Второй тап не обрабатывается. Видать браузер шлёт двойной тап или хз что.
Проверил на Android 2.3 и 4.0.3 в стандартных браузерах и, на первом, в Opera Mini — все работает.
Скрин с Android 2.3
Скрин с Android 4.0.3
браузер ничего о тапах не знает. тап это быстрая смена событий touchstart/touchend. Точно так же как и для click mousedown/mouseup
было бы круто если бы вы оформили это как bower пакет и приделали туда объявление в стиле amd (опциональное, которое типа проверяет наличие нужных функций и если есть все что надо объявляет через define, пример можно например в коде lodash посмотреть).
Какая в итоге задержка стала с этим плагином?
Идея взята отсюда? github.com/ftlabs/fastclick
Или просто совпадение?
Или просто совпадение?
Интересно, как Ваш tap взаимодействует с hover. Например, если пункт меню подсвечивается при наведении и одновременно имеет событие click. Это типичная проблема на ios-устройстве: сначала срабатывает «ховер», а при втором клике уже «клик». Проверить сейчас сам не могу, но написать об этом стоило бы.
А что со swipe? Был бы рад увидеть и их в этом или дополнительном таком же минималистичном плагине.
eightmedia.github.io/hammer.js/ — как по мне довольно минималистичная штука.
И вопрос наполовину по теме (это со всеми плагинами так): если привязать tap event к объекту, расположенному на верхнем диве, тап по которому скрывает этот див, то через те самые 300мс происходит дополнительный click event по тому, что находится под этим дивом (в моём случае активируется input), есть способ это побороть?
Перепробовал уже в различных местах preventDefault, stopPropagation, return false, отмену десктопных событий; помогает только setTimeout(360)…
Перепробовал уже в различных местах preventDefault, stopPropagation, return false, отмену десктопных событий; помогает только setTimeout(360)…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
jTap — событие клика для сенсорных устройств