Ich versuche, das Ereignis on() zu verwenden, um sowohl ein Klick- als auch Mouseover-Ereignis an einen Link zu binden, im Wesentlichen um Hover-Verhalten auf dem Desktop zu haben und für Mobile und Tablet zu klicken. Das Problem, das ich derzeit habe, ist, dass beide Ereignisse gleichzeitig ausgelöst werden. Ist es möglich, dies sauber zu machen, oder sollte ich nur eine Bedingung für die Bildschirmbreite hinzufügen und den Hover speziell auf dem Desktop anwenden, klicken Sie auf Ereignis für Handy? Grund JS Geige hier: http://jsfiddle.net/4wr3da8p/Mouseover und klicken Sie auf Ereigniskonflikt
$('div').on('click mouseover', 'a', function(e) {
e.preventDefault();
$(this).toggleClass('active');
});
EDIT: die jsfiddle Aktualisiert besser zu zeigen, was ich versuche zu tun. Ich möchte die Anzeige eines angrenzenden Elements umschalten, daher glaube ich nicht, dass CSS-Pseudoklassen helfen werden.
$('div').on('click mouseover', 'a', function(e) {
e.preventDefault();
$('.content').toggleClass('active');
});
binden Ereignis auf dem Gerät basiert ... für Prüfeinrichtung: http://stackoverflow.com/questions/3514784/what-is-the-best- way-to-detect-a-mobil-device-in-jquery –
Klicken wird nicht ausgelöst, wenn Sie den Mauszeiger darüber bewegen, aber mouseover wird ausgelöst, wenn Sie auf klicken. –
Sie sollten Ihren Code in die Frage aufnehmen und es ist auch nicht ganz klar, was Sie erreichen möchten. Hover/Tap ist ein häufiges Design-Problem in Multi-Device-UI, aber wie Sie es angehen, hängt von der Ui ab. Normalerweise möchten Sie bei Ereignissen bleiben, die so 'semantisch' und so hoch wie möglich sind. – pvg