Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #31381 > unrolled thread

Differentiate between touch start and click

Started byAndrew Poulos <ap_prog@hotmail.com>
First post2016-09-16 18:26 +1000
Last post2016-09-18 19:25 +1000
Articles 4 — 3 participants

Back to article view | Back to comp.lang.javascript


Contents

  Differentiate between touch start and click Andrew Poulos <ap_prog@hotmail.com> - 2016-09-16 18:26 +1000
    Re: Differentiate between touch start and click Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-09-16 11:25 +0100
    Re: Differentiate between touch start and click Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2016-09-17 00:06 +0200
      Re: Differentiate between touch start and click Andrew Poulos <ap_prog@hotmail.com> - 2016-09-18 19:25 +1000

#31381 — Differentiate between touch start and click

FromAndrew Poulos <ap_prog@hotmail.com>
Date2016-09-16 18:26 +1000
SubjectDifferentiate between touch start and click
Message-ID<I9SdnaAw9NE7MUbKnZ2dnUU7-VfNnZ2d@westnet.com.au>
I have a touchstart event and a click event both triggering this function

function checkTrigger(e){
   if (e.type != "click") {
     e = e.touches[0];
   }

   var elem = document.elementFromPoint(e.pageX - window.pageXOffset,
                                        e.pageY - window.pageYOffset);
   ...
}

To tell whether it was a touchstart or a click I'm using
   (e.type != "click")
is that the right way to differentiate between the two or should I have 
two smaller functions (one for each event) which then pass on the 
relevant values to checkTrigger?

Andrew Poulos

[toc] | [next] | [standalone]


#31382

FromBen Bacarisse <ben.usenet@bsb.me.uk>
Date2016-09-16 11:25 +0100
Message-ID<87eg4kkupg.fsf@bsb.me.uk>
In reply to#31381
Andrew Poulos <ap_prog@hotmail.com> writes:

> I have a touchstart event and a click event both triggering this function
>
> function checkTrigger(e){
>   if (e.type != "click") {
>     e = e.touches[0];
>   }
>
>   var elem = document.elementFromPoint(e.pageX - window.pageXOffset,
>                                        e.pageY - window.pageYOffset);
>   ...
> }
>
> To tell whether it was a touchstart or a click I'm using
>   (e.type != "click")
> is that the right way to differentiate between the two or should I
> have two smaller functions (one for each event) which then pass on the
> relevant values to checkTrigger?

I don't think it matters much but I would, in general, make the test
positive (logically you are doing something when it's a touch event, not
when it isn't a click event).  Indeed, you might even want to test for
the touches property itself.

I'd be more concerned about the pageX/pageY stuff which is not
standardised (though I may be behind the times on that).  You usually
get the target element using "e.target" and "this" will usually refer to
the element to which the listener was added.

-- 
Ben.

[toc] | [prev] | [next] | [standalone]


#31385

FromThomas 'PointedEars' Lahn <PointedEars@web.de>
Date2016-09-17 00:06 +0200
Message-ID<1777691.oMNUckLgyt@PointedEars.de>
In reply to#31381
Andrew Poulos wrote:

> I have a touchstart event and a click event both triggering this function

You should not.  AISB, “touchstart” is equivalent to “mousedown” and 
“pointerdown”; ”click” is equivalent to “touchstart” followed by
“touchend”, or “pointerdown” followed by “pointerup”, instead.

> To tell whether it was a touchstart or a click I'm using
>    (e.type != "click")
> is that the right way to differentiate between the two or should I have
> two smaller functions (one for each event) which then pass on the
> relevant values to checkTrigger?

No.

-- 
PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not cc me. / Bitte keine Kopien per E-Mail.

[toc] | [prev] | [next] | [standalone]


#31398

FromAndrew Poulos <ap_prog@hotmail.com>
Date2016-09-18 19:25 +1000
Message-ID<q_OdnYV7Q8DowEPKnZ2dnUU7-Y3NnZ2d@westnet.com.au>
In reply to#31385
On 17/09/2016 8:06 AM, Thomas 'PointedEars' Lahn wrote:
> Andrew Poulos wrote:
>
>> I have a touchstart event and a click event both triggering this function
>
> You should not.  AISB, “touchstart” is equivalent to “mousedown” and
> “pointerdown”; ”click” is equivalent to “touchstart” followed by
> “touchend”, or “pointerdown” followed by “pointerup”, instead.

While they have been times I have pressed a button on my mouse only to 
change my mind before I release the button I have never touched a 
touch-enabled device and have changed my mind before I lifted my finger. 
So for me "touchstart" seems appropriate.

>> To tell whether it was a touchstart or a click I'm using
>>    (e.type != "click")
>> is that the right way to differentiate between the two or should I have
>> two smaller functions (one for each event) which then pass on the
>> relevant values to checkTrigger?
>
> No.

No to which one: the former, the latter, or both?

Andrew Poulos

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.javascript


csiph-web