it-roy-ru.com

Можно ли скрыть заголовок от ссылки с помощью CSS?

У меня есть элемент привязки с атрибутом заголовка. Я хочу скрыть всплывающее окно, которое появляется при наведении на него курсора в окне браузера ... В моем случае невозможно сделать что-то подобное,

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

Из-за jQuery Mobile заголовок будет появляться после определенных событий (в основном каждый раз, когда элемент привязки перерисовывается) . Поэтому я надеюсь скрыть заголовок с помощью CSS.

Что-то вроде:

a[title] {
    display : none;
}

не работает, так как скрывает весь элемент привязки. Я хочу скрыть только заголовок. Это вообще возможно? Всплывающее окно не должно отображаться.

23
Jonas Tepe

Использование следующего свойства CSS гарантирует, что текст атрибута title не появится при наведении:

pointer-events: none;

Имейте в виду, что JS является лучшим решением, поскольку это свойство CSS гарантирует, что элемент никогда не будет целью каких-либо событий мыши.

13
Blake Frederick

В соответствии с предложением @ boltClock, я скажу, что я не считаю, что здесь подходит CSS-решение, так как браузер решает, что делать с атрибутом title ссылки или что-то в этом роде. Насколько мне известно, CSS не может решить эту проблему. 

Как уже упоминалось, использование jQuery для замены заголовка пустой строкой не будет работать, поскольку в некоторых местах jQuery mobile переписывает их. Это, однако, будет работать независимо от JQM и не предполагает полного удаления атрибута title, что важно для 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>
2
Arjan Frans

С помощью CSS это невозможно, поскольку с помощью 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");
});

это удалит атрибут заголовка, поэтому метка подсказки не будет отображаться при наведении на ссылку 

0
mustafa-elhelbawy