web-dev-qa-db-ja.com

CSSでリンクからタイトルを隠すことは可能ですか?

Title属性を持つアンカー要素があります。ブラウザウィンドウでポップアップしたときに表示されるポップアップを非表示にします。私の場合、このようなことはできません。

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

JQuery Mobileのため、特定のイベントが発生した後(基本的に、アンカー要素が再描画されるたびに)、タイトルが再表示されます。そのため、CSSを介してタイトルを非表示にしたいと考えています。

何かのようなもの:

a[title] {
    display : none;
}

アンカー要素全体を非表示にするため、機能しません。タイトルのみを非表示にします。これも可能ですか?ポップアップは表示されません。

25
jtepe

次のCSSプロパティを使用すると、タイトル属性のテキストがホバー時に表示されなくなります。

pointer-events: none;

このCSSプロパティは、要素がマウスイベントのターゲットにならないようにするため、JSの方が優れたソリューションであることに注意してください。

14
Blake Frederick

@boltClockの提案によると、ブラウザのリンクのタイトル属性などの処理はブラウザが決定するため、ここではCSSソリューションが適切であるとは感じないと言います。私の知る限り、CSSはこの問題を処理できません。

前述のように、jQuery mobileを使用してタイトルを空の文字列に置き換えると動作しません。jQuerymobileはいくつかの時点でそれらを書き換えるためです。ただし、これはJQMとは独立して機能し、SEOにとって重要なタイトル属性を完全に削除することは含まれません。

これは動作します:

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

テスト後に$('body').on('mouseenter')の初期コードをこれに変更しました。これは動作することが確認されています。

9
Todd

内部テキストをスパンでラップして、空のタイトル属性を指定できます。

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

CSSでは、DOMにコンテンツを追加することしかできないため(通常は_:before :after_および_content: '...';_を使用して、属性を削除または変更することはできません)。

唯一の方法は、ライブカスタムイベントを作成することです(たとえば、_"change-something"_):

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

すべての変更のトリガー:

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

詳細とデモはこちら:

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

2
g.annunziata

これを使用してコードを変更してみてください

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

これによりタイトル属性が削除されるため、リンクにカーソルを合わせたときにヒントラベルが表示されません

1