it-swarm.com.de

Kann der Titel vor einem Link mit CSS ausgeblendet werden?

Ich habe ein Ankerelement mit einem Titelattribut. Ich möchte das Popup ausblenden, das angezeigt wird, wenn Sie mit der Maus im Browserfenster darüber fahren .. In meinem Fall ist es nicht möglich, so etwas zu tun.

$("a").attr("title", "");

Aufgrund von jQuery Mobile wird der Titel nach bestimmten Ereignissen wieder angezeigt (grundsätzlich jedes Mal, wenn das Ankerelement neu gezeichnet wird) . Ich hoffe, der Titel wird über CSS ausgeblendet.

So etwas wie:

a[title] {
    display : none;
}

funktioniert nicht, da das gesamte Ankerelement ausgeblendet wird. Ich möchte nur den Titel ausblenden. Ist das überhaupt möglich? Das Popup sollte nicht angezeigt werden.

23
Jonas Tepe

Durch die Verwendung der folgenden CSS-Eigenschaft wird sichergestellt, dass der Titelattributtext nicht beim Hover angezeigt wird:

pointer-events: none;

Beachten Sie, dass JS eine bessere Lösung ist, da diese CSS-Eigenschaft dafür sorgt, dass das Element niemals das Ziel von Mausereignissen ist.

13
Blake Frederick

Gemäß dem Vorschlag von per @ boltClock möchte ich sagen, dass ich nicht der Meinung bin, dass eine CSS-Lösung hier angemessen ist, da der Browser entscheidet, was mit dem Titelattribut eines Links oder irgendetwas zu tun ist. Meines Wissens kann CSS dieses Problem nicht lösen. 

Wie bereits erwähnt, funktioniert die Verwendung von jQuery zum Ersetzen des Titels durch eine leere Zeichenfolge nicht, da jQuery mobile sie an einigen Stellen neu schreibt. Dies funktioniert jedoch unabhängig von JQM und beinhaltet nicht das vollständige Entfernen des Titelattributs, was SEO wichtig ist. 

Das funktioniert:

$('a["title"]').on('mouseenter', function(e){
    e.preventDefault();
});

Ich habe meinen ursprünglichen Code von $('body').on('mouseenter') nach dem Test darauf geändert. Dies ist bestätigt zu arbeiten.

9
Todd

Sie können Ihren inneren Text in einem Bereich einschließen und diesem ein leeres Titelattribut zuweisen.

<a href="" title="Something" class=".some-tooltip-class"><span title="">Your text</span></a>
2
Arjan Frans

In CSS ist dies nicht möglich, da Sie DOM nur Inhalte hinzufügen können (typischerweise mit :before :after und content: '...';, keine Attribute entfernen oder ändern.

Die einzige Möglichkeit besteht darin, ein benutzerdefiniertes Live-Ereignis zu erstellen (es. "change-something"):

$("a").on("change-something", function(event) { this.removeAttr("title"); });

und bei jeder Änderung auslösen:

... $("a").trigger("change-something");

Weitere Informationen und Demo hier:

http://api.jquery.com/trigger/
http://api.jquery.com/removeAttr/

2
g.annunziata

versuchen Sie, Ihren Code zu ändern

$(document).ready(function() {
    $("a").removeAttr("title");
});

dadurch wird das Titelattribut entfernt, sodass die Hinweisbeschriftung nicht angezeigt wird, wenn Sie den Mauszeiger über den Link bewegen 

0