$(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.

Das funktioniert nicht für alle Safari Mobiles / Tablets

$(document).on('click', '#anyHTMLelement', function(event) {
    event.preventDefault();
    //Code, der ausgeführt werden soll, nachdem #anyHTMLelement berührt oder geklickt wurde
});

Das wird für alle Safari Mobiles / Tablets gut funktionieren

$(document).on('click touchend', '#anyHTMLelement', function(event) {
    event.preventDefault();
    //Code, der ausgeführt werden soll, nachdem #anyHTMLelement berührt oder geklickt wurde
});

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.)