css 'Zeiger-Ereignisse' Eigenschaft Alternative für IE
Ich habe ein drop-down Navigationsmenü, in dem einige der Titel sollte nicht mehr navigieren, um zu anderen Seite, wenn Sie geklickt werden(dieser Titel öffnet sich ein drop-down-Menü, wenn Sie angeklickt wird), während andere sollten navigieren Sie diese nicht haben, dropdown Menü und navigieren Sie direkt).Jedoch, beide Arten haben href
definiert, um Sie
Um dieses Problem zu lösen habe ich den folgenden css-Code für das ehemalige Titeln
pointer-events: none;
und es funktioniert Prima.Aber da diese Eigenschaft nicht unterstützt von IE, ich bin auf der Suche nach Arbeit um.
Die ärgerliche Sache ist, dass ich habe keinen Zugriff und Berechtigungen zu ändern, den HTML-und JavaScript-code komplett.
Irgendwelche Ideen?
pointer-events
ist jetzt im IE11+ InformationsquelleAutor der Frage anu | 2011-05-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Pointer-events ist ein Mozilla-hack und wo es umgesetzt wurde in Webkit-Browsern, können Sie nicht erwarten, zu sehen, es in IE-Browser, die für eine million Jahre.
Gibt es jedoch eine Lösung, die ich gefunden:
Weiterleitung Von Maus-Events Durch Die Verschiedenen Schichten
Diese nutzt ein plugin, das verwendet einige nicht bekannt/verstanden, Eigenschaften von Javascript zu nehmen, die Maus-event und senden Sie es zu einem anderen element.
Gibt es auch eine andere Javascript-Lösung hier.
- Update für Oktober 2013: anscheinend kommt es auf den IE in der v11. Quelle. Dank Tim.
InformationsquelleAutor der Antwort Kyle
Hier ist eine andere Lösung, die sehr einfach zu implementieren mit 5 Zeilen code:
Beispiel:
InformationsquelleAutor der Antwort MarzSocks
Gibt es einen workaround für den IE - verwenden Sie inline-SVG und setze pointer-events="none" im SVG.
Siehe meine Antwort in Wie, um Internet Explorer zu emulieren pointer-events:none?
InformationsquelleAutor der Antwort obiuquido144
Es ist erwähnenswert, dass speziell für den IE,
disabled=disabled
Werke für Anker-tags:IE interpretiert dies als eine
disabled
element und löst keine click-Ereignis. Allerdingsdisabled
ist kein gültiges Attribut bei einem anchor-tag. Also das wird nicht funktionieren, in anderen Browsern. Für Siepointer-events:none
im styling.UPDATE 1: Also das hinzufügen folgender Regel fühlt sich an wie eine cross-browser Lösung für mich
UPDATE 2: Für bessere Kompatibilität, da der IE nicht form-styles für Anker-tags mit
disabled='disabled'
, so dass Sie immer noch look aktiv. Soa:hover{}
Regel und styling ist eine gute Idee:Arbeiten auf Chrome, IE11 und IE8.
Natürlich über CSS übernimmt die Anker-tags werden gerendert mit
disabled="disabled"
InformationsquelleAutor der Antwort Nikhil
Hier ist ein kleines Skript, dieses feature implementieren (inspiriert durch die Shea Frederick blog-Artikel, dass Kyle erwähnt):
InformationsquelleAutor der Antwort Kent Mewhort
Abdeckung, die problematischen Elemente mit ein unsichtbaren block, mit einem pseudo-element:
:before
oder:after
So, du bist auf Ländereien, die auf das übergeordnete element. Nicht gut, wenn die Eltern anklickbar ist, aber ansonsten.
InformationsquelleAutor der Antwort Graham P Heath
Verbrachte ich fast zwei Tage auf der Suche nach der Lösung für dieses problem und ich fand diese am letzten.
Diese verwendet javascript und jquery.
(GitHub) pointer_events_polyfill
Dies könnte ein javascript-plug-in heruntergeladen/kopiert werden.
Einfach kopieren/download des codes von der Website und speichern Sie es als
pointer_events_polyfill.js
. Zählen Sie sich, dass javascript in Ihre site.<script src="JS/pointer_events_polyfill.js></script>
Fügen Sie diese jquery-Skripts zu Ihrer Website
Und vergessen Sie nicht, Ihre jquery-plug-in.
Es funktioniert! Ich kann auf Elemente unter dem transparenten element. Ich bin mit IE 10. Ich hoffe, das funktioniert auch im IE 9 und darunter.
EDIT: Mit dieser Lösung funktioniert nicht, wenn Sie klicken Sie auf die Textfelder unterhalb der transparenten element. Um dieses problem zu lösen, verwende ich den Fokus, wenn der Benutzer auf das Textfeld.
Javascript:
JQuery:
Diese können Sie geben Sie den text in das Textfeld ein.
InformationsquelleAutor der Antwort Mai
Ich habe eine andere Lösung gefunden um dieses problem zu lösen. Ich benutze jQuery um die
href
-Attribut zujavascript:;
(nicht ' der ', oder der browser die Seite neu laden), wenn der browser-Fenster-Breite ist größer als 1'000px. Benötigen Sie eine ID an den link. Hier ist, was ich Tue:Vielleicht ist es nützlich für Sie.
InformationsquelleAutor der Antwort yves.beutler
Verwenden
OnClientClick = "return false;"
InformationsquelleAutor der Antwort Medde
Können Sie auch einfach "nicht" hinzufügen einer url innerhalb der
<a>
tag, ich mache das für Menüs, sind<a>
tag Gefahren mit drop-down-als auch. Wenn es nicht fallen nach unten, dann füge ich die url aber wenn es drop-downs mit einem<ul> <li>
Liste ich einfach zu entfernen.InformationsquelleAutor der Antwort user3657756
Ich vor ähnlichen Fragen:
Stand ich vor dieser Frage in einer Richtlinie, i fixed it, hinzufügen von ein als sein übergeordnetes element und machen pointer-events:none,
Den oben genannten fix nicht funktioniert, wählen Sie tag, dann habe ich cursor:text (das war was ich wollte) und es funktionierte für mich
Wenn ein normaler cursor benötigt wird, könnte man hinzufügen, cursor:default
InformationsquelleAutor der Antwort Z.T
Beste Lösung:
Läuft perfekt auf allen Browsern
InformationsquelleAutor der Antwort Rafa Baldayo