Как обнаружить событие onclick только на смартфоне и планшете с помощью javascript?

https://jsfiddle.net/d87zjbLp/3/

я использую этот код, но я хочу вызывать функцию myFunction() только на смартфоне и планшете (не на ПК и ноутбуке)

Как я могу это сделать?


Ответы (2)

https://jsfiddle.net/0ozss4q4/1/

Проверьте, является ли он мобильным или планшетным

function isMobileOrTablet() {
 if (navigator.userAgent.match(/Android/i)
  || navigator.userAgent.match(/webOS/i)
  || navigator.userAgent.match(/iPhone/i)
  || navigator.userAgent.match(/iPad/i)
  || navigator.userAgent.match(/iPod/i)
  || navigator.userAgent.match(/BlackBerry/i)
  || navigator.userAgent.match(/Windows Phone/i)
 ) {
  return true;
 }else {
  return false;
 }
}

Затем создайте главную функцию, которая будет выполняться только в том случае, если это мобильный или планшетный компьютер

function onlyMobileAndTablet(callback) {
 if(isMobileOrTablet()) {
  return callback && callback()
 }
}

Тогда просто вызовите эту функцию там, где вам нужно

onlyMobileAndTablet(function() {
 console.log('only mobile or tablet');
});

Или вы можете поступить следующим образом.

function isMobileOrTablet(callback) {
     if (navigator.userAgent.match(/Android/i)
      || navigator.userAgent.match(/webOS/i)
      || navigator.userAgent.match(/iPhone/i)
      || navigator.userAgent.match(/iPad/i)
      || navigator.userAgent.match(/iPod/i)
      || navigator.userAgent.match(/BlackBerry/i)
      || navigator.userAgent.match(/Windows Phone/i)
     ) {
      return callback && callback(true);
     }else {
      return callback && callback(false);
     }
    }

Затем вызовите функцию и проверьте возвращаемое значение

isMobileOrTablet(function(res) {
 if (res) {
  // This is mobile/tablet
 } else {
  // this is not a mobile/tablet
 }
});

Вам следует просто использовать атрибут "on touchstart".

Может быть, есть более подходящее событие для вашей воли, например, touchend, или, может быть, touchenter;

http://www.javascriptkit.com/javatutors/touchevents.shtml

2022 WebDevInsider