Verfügt jQuery oder jQuery-UI über Funktionen zum Deaktivieren der Textauswahl für bestimmte Dokumentelemente?
javascript
jquery
jquery-ui
Dawid Ohia
quelle
quelle
Antworten:
In jQuery 1.8 kann dies wie folgt erfolgen:
quelle
Wenn Sie die jQuery-Benutzeroberfläche verwenden, gibt es dafür eine Methode, die jedoch nur die Mausauswahl verarbeiten kann (dh CTRL+ Afunktioniert noch):
Der Code ist wirklich einfach, wenn Sie die jQuery-Benutzeroberfläche nicht verwenden möchten:
quelle
Ich fand diese Antwort ( Verhindern des Hervorhebens der Texttabelle ) am hilfreichsten und kann möglicherweise mit einer anderen Methode zur Bereitstellung der IE-Kompatibilität kombiniert werden.
quelle
Hier ist eine umfassendere Lösung für die Auswahl der Trennung und das Löschen einiger Hotkeys (z. B. Ctrl+ aund Ctrl+ c. Test: Cmd + aund Cmd+ c).
und Beispiel aufrufen:
jsfiddle.net/JBxnQ/
Dies könnte auch für alte Versionen von FireFox nicht ausreichen (ich kann nicht sagen, welche). Wenn dies alles nicht funktioniert, fügen Sie Folgendes hinzu:
quelle
attr('unselectable', 'on')
zweimal an? Ist es ein Tippfehler oder ist es nützlich?Folgendes würde die Auswahl aller Klassenelemente in allen gängigen Browsern (IE, Chrome, Mozilla, Opera und Safari) deaktivieren:
quelle
quelle
Dies kann einfach mit JavaScript erfolgen. Dies gilt für alle Browser
Rufen Sie diese Funktion auf
quelle
Das ist eigentlich sehr einfach. Verwenden Sie einfach den folgenden jQuery-Code, um die Textauswahl zu deaktivieren (und auch auf + Ziehen von Text (z. B. einen Link in Chrome) zu klicken):
Dies verhindert lediglich, dass die Standardeinstellung auftritt, wenn Sie mit der Maus (
mousedown()
) in die Tagsbody
und klickenhtml
. Sie können das Element sehr einfach ändern, indem Sie den Text zwischen den beiden Anführungszeichen ändern (z. B. ändern$('body, html')
in$('#myUnselectableDiv')
, um dasmyUnselectableDiv
div nicht auswählbar zu machen.Ein kurzer Ausschnitt, um Ihnen dies zu zeigen / zu beweisen:
Bitte beachten Sie, dass dieser Effekt nicht perfekt ist und die beste Leistung erbringt, während das gesamte Fenster nicht auswählbar ist. Vielleicht möchten Sie auch hinzufügen
auch, indem Sie diesen Abschnitt von Vladimir's Antwort oben verwenden. (gehe zu seinem Beitrag hier )
quelle
1-Zeilen-Lösung für CHROM:
und FF:
IE erfordert das Setzen des Attributs "nicht auswählbar" (Details unten).
Ich habe dies in Chrome getestet und es funktioniert. Diese Eigenschaft wird vererbt. Wenn Sie sie für das Body-Element festlegen, wird die Auswahl in Ihrem gesamten Dokument deaktiviert.
Details hier: http://help.dottoro.com/ljrlukea.php
Wenn Sie Closure verwenden, rufen Sie einfach diese Funktion auf:
Es behandelt alle Browser transparent.
Die Nicht-IE-Browser werden wie folgt behandelt:
Hier definiert: http://closure-library.googlecode.com/svn/!svn/bc/4/trunk/closure/goog/docs/closure_goog_style_style.js.source.html
Der IE-Teil wird folgendermaßen behandelt:
quelle
Ich denke, dieser Code funktioniert in allen Browsern und erfordert den geringsten Overhead. Es ist wirklich eine Mischung aus all den oben genannten Antworten. Lassen Sie mich wissen, wenn Sie einen Fehler finden!
CSS hinzufügen:
JQuery hinzufügen:
Optional: Um die Auswahl auch für alle untergeordneten Elemente zu deaktivieren, können Sie den IE-Block in Folgendes ändern:
Verwendung:
quelle
Ich habe alle Ansätze ausprobiert, und dieser ist der einfachste für mich, da ich IWebBrowser2 verwende und nicht mit 10 Browsern zu kämpfen habe:
Funktioniert perfekt für mich!
quelle
Eine Lösung hierfür besteht in geeigneten Fällen darin, a
<button>
für den Text zu verwenden, der nicht auswählbar sein soll. Wenn Sieclick
in einem Textblock an das Ereignis gebunden sind und nicht möchten, dass dieser Text auswählbar ist, wird durch Ändern der Schaltfläche in eine Schaltfläche die Semantik verbessert und auch die Auswahl des Texts verhindert.quelle
Der beste und einfachste Weg, den ich gefunden habe, verhindert Strg + C, Rechtsklick. In diesem Fall habe ich alles blockiert, sodass ich nichts angeben muss.
quelle