Moin,
ich hab da so ein Element. Das hat sowohl einen Click als auch einen Drag. Bei Click soll etwas passieren, sagen wir mal es soll grün werden, und bei drag soll es blau werden. Damit es nicht immer gleich blau wird, habe ich einen delay eingebaut. Damit das Element aber nicht unschön durch die Gegend springt, habe ich den delay sehr klein gewählt -> 50ms.
Bei fast allen Smartphones funktioniert diese Methodik wunderbar. Jetzt bekomme ich die Information, dass es bei Samsung nicht funktioniert. Anscheinend funktioniert das delay nicht oder der User (von dem ich die Fehlermeldung bekam) ist zu langsam beim Klicken. Auf jeden Fall wird das Element immer sofort blau. Ein Click soll nicht möglich sein.
Ein Delay ein zu bauen ist, wie ich finde, eine Notlösung. Hat jQuery halt so hergegeben und war schnell eingebaut und pragmatisch. "Richtiger" wäre jedoch eine Bewegungstoleranz zu haben. Sprich, erst wenn ich mich z.B. 10px vom ersten Mousdown (bzw. Dragstart) entfernt habe, wird es als Drag gewertet. Alles andere wird als Click gewertet. Das würde ebenfalls bedeuten, dass der Drag auch nach 10 Minuten nicht ausgelöst wird, sofern man den Finger nicht bewegt. Ist für meinen Fall auch genau so erwünscht.
Bevor ich da jetzt selber etwas erfinde stelle ich mir natürlich die Frage, gibt es da bereits eine fertige Lösung? Eine Erweiterung des Drags? Oder eine fertige Lösung in irgendeinem Forum?
Richtig perfekt wäre eine Angabe wie bei delay. ... tolerance: 10px oder so
Gruß Toleranter T-Rex