$(document).on(‚click‘, mit Safari

Falls du dich wunderst, wieso $(document).on('click', in Safari nicht funktioniert, ist hier die Lösung.

Wie viele Leute schon wissen, wird Safari als der „nächste Internet Explorer“ bezeichnet, weil es mehr und mehr Anpassungen benötigt, um die Selben Features zu gewährleisten, wie die anderen Browser. In diesem Fall hatte ich ein Problem mit der Klick-Funktion von jQuery. Kommen wir direkt zur Lösung.


$(document).on('click', '#anyHTMLelement', function(event) {
event.preventDefault();
//Code, der ausgeführt werden soll, nachdem #anyHTMLelement berührt oder geklickt wurde
});
Das funktioniert nicht für Safari Mobile / Tablet

$(document).on('click touchend', '#anyHTMLelement', function(event) {
event.preventDefault();
//Code, der ausgeführt werden soll, nachdem #anyHTMLelement berührt oder geklickt wurde
});
Das wird für Safari Mobile / Tablet gut funktionieren

Anstatt „touchend“ kannst du auch andere Trigger-Optionen verwenden. Hier bekommst du eine Liste mit ihren Namen und wann sie ausgelöst werden, lautMDN:

  • touchstart
    „touchstart“ wird ausgelöst, wenn der Finger auf die selektierte Fläche platziert wird.
  • touchend
    „touchend“ wird ausgelöst, wenn der Finger auf der selektierten Fläche angehoben wird.
  • touchmove
    „touchmiove“ wird ausgelöst, wenn der Finger auf die Fläche platziert wird. ( z.B. Wenn über die gewählte Fläche gewischt wird.)
  • touchcancel
    „touchcancel“ wird ausgelöst, wenn die Berührung aufgrund irgendeines Events unterbrochen wird. ( z.B.: Bei zu vielen Berührungspunkten.)