I found out that it works fine on IOS devices(iPhone, iPad), and also some other android devices such as nexus(Android version 8.0).
I am using Chrome browser in an Android device.(Samsung Galaxy Note5, Android version-7.0, chrome 60.0.3112.107)
When debugging the source code, it seems "this._touchMoved" becomes true when 'touchMove' event is triggered, so the click event won't trigger.
The source is as below.
touch-punch/touch-punch.dev.js
mouseProto._touchMove = function (event) {
if ( !this._touchHandled ) {
return;
}
this._touchMoved = true;
simulateMouseEvent(event, 'mousemove');
};
mouseProto._touchEnd = function (event) {
if ( !this._touchHandled ) {
return;
}
simulateMouseEvent(event, 'mouseup');
simulateMouseEvent(event, 'mouseout');
if (!this._touchMoved) {
simulateMouseEvent(event, 'click');
}
this._touchMoved = false;
this._touchHandled = false;
touchHandled = false;
if(secondTap){
simulateMouseEvent(event, 'dblclick');
}
};