Да спрем да се заблуждаваме с разпознаването на пипащи се (touch) устройства

До всички 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();
});

Време е да оправим положението!

Leave a comment

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните ви за коментари.