2017-03-22 4 views
4

Ich bin "nur" versuchen, ein Klickereignis an eine <button> zu binden und es für Desktop (Chrome, FF, ...), Android und iOS arbeiten.Wie binden Sie ein Klickereignis in iOS?

Ich habe eine Menge Zeug wie thiscursor: pointer versucht, die am einfachsten und effektivsten schien aber nicht funktioniert.

Ich habe auch versucht ein onclick='' oder onclick='void(0)' auf dem HTML-Elemente, ein Trick, den ich mich erinnere mich nicht einmal gesehen habe, wo ...

ich mit externen Bibliotheken wie FastClick versucht zu 300ms warten zu löschen, nachdem a klicken ... funktioniert nicht

und keine Chance mehr mit Pointer Events Polyfill und Bindung mit pointerup ...

ich aus Ideen laufen haben ...

Mein HTML:

<div class="col-md-12"> 
    <button type="button" onclick='' id="begin" class="btn andro btn-danger btnlg"> 
     <img src="img/icon.png" height="50px"> GO 
     <img src="img/icon.png" height="50px"> 
    </button> 
</div> 

Mein JS:

$(document).on('touchstart', '#begin', function() { 
     // do things 
    }); 

Ich versuchte natürlich touchstart (auch touchend!) Statt click und noch nicht auf iphones zu binden funktioniert .. Das Problem ist: Ich habe kein Iphone, um meine Sachen zu testen, also muss ich einigen Freunden vertrauen, die ein iOS-Gerät haben ... Muss ich.

Ändere meinen Code ... Oder ändere meine Freunde? ^^

+2

'Ich habe kein Iphone, um meine Sachen zu testen' Wenn Sie Safari verwenden, gibt es eine Option in der Entwicklerkonsole, damit es ein iPhone emuliert –

+0

Haben Sie versucht, das onclick-Attribut von Ihrem Button-Element zu entfernen? Meine Vermutung ist, dass, weil es nur eine leere Zeichenfolge ist Safari auf dem iPhone ignoriert alle Ereignisse auf der Schaltfläche –

+0

@RoryMcCrossan: Ich sollte versuchen, dass danke für die Info :) .. Emuliert ein echtes iOS-Gerät? ... @PatrickHund: Ich muss zugeben, dass ich glaube nicht, dass ich versucht habe, touchstart ohne 'onclick = ''' zu binden, aber wenn ich 'touchstart' verwende, wird es nicht auf dem Desktop ausgelöst oder ich werde es tun müssen Sie für Benutzer-Agent wie hier schnüffeln: http://stackoverflow.com/a/34493059/3636091 oder Sie wissen, Workaround? – Seba99

Antwort

1

Soooo .... Nach vielen Recherchen und Versuche wie einer nach dem anderen Bibliotheken zu entfernen und Teile des Codes zu kommentieren ...

ich war in der Lage zu finden, was mit dem Klick wurde durcheinander. .. es war, weil meine Bindungen in einem gekapselten wurden:

$(document).ready(function() { 
    // My bindings here 
}); 

und es scheint, wie iOS dies nicht mag ...

binden sie Ihren Klick aus der ready-Funktion und es funktioniert .. Hoffe es kann jemandem helfen!

Verwandte Themen