До всички JS дживелъпъри: Време е да спрем да се самозаблуждаваме. Това, че потребителят има устройство, което поддържа пипане (touch) не значи, че ще го използва само по този начин. Не знаете за какво говоря? Ето:
var clickEventToUse = ( 'ontouchstart' in window ? 'touchend' : 'click' )
Все още не знаете? Представете си лаптоп с touchscreen (все по-голям брой лаптопи напоследък). Този код принуждава потребителя да използва устройството си само с пипане и прави библиотеката неизползваема за мишка и клавиатура. Сега си представете, че потребителя има втори монитор, който не поддържа touch. Да – за да извършите определено действие трябва да си преместите прозореца на другия екран и да започнете да го пипате. Много извратено! А fix-а може да е нещо супер просто:
function doSomething() { // don't look, do something } $( 'selector' ).on( 'click', function( e ) { doSomething(); }).on( 'touchend', function( e ) { e.preventDefault(); // we don't want the click triggered second time, do we? doSomething(); });
Време е да оправим положението!