2013-03-12 2 views
18

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

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

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

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

a[title] { 
    display : none; 
} 

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

+0

Нет, вы не можете скрыть всплывающие подсказки. это не входит в спецификацию css. –

+0

Возможный дубликат [Как отключить подсказку в браузере с помощью jQuery?] (Http://stackoverflow.com/questions/1027762/how-to-disable-tooltip-in-the-browser-with-jquery) – andyb

+0

Это тоже Плохо. Тогда мне нужно будет найти что-то еще. –

ответ

1

По CSS не представляется возможным, так как с помощью CSS можно только добавляет содержимое в DOM (Tipically с :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/

7

EDIT В соответствии с @ boltClock-й предложение, скажу я не чувствую, что CSS решение подходит здесь, как браузер решает, что делать с атрибутом title ссылки или что-то в этом роде. CSS, насколько мне известно, не может справиться с этой проблемой. Как уже упоминалось, использование jquery для замены заголовка пустой строкой не работает, потому что jquery mobile переписывает их в некоторых точках. Это, однако, будет работать независимо от JQM и не требует полного удаления атрибута title, который является важным для SEO.

Это работает:

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

надеюсь, что это помогает.

EDIT Я изменил свой первоначальный код $ ('body'). On ('mouseenter') на это после тестирования. это подтверждается работой.

+0

Перемещение моего комментария с другого ответа на этот вопрос: это не похоже на CSS для меня. – BoltClock

+1

ну, @BoltClock, это потому, что это не так. OP только сказал, что что-то вроде сценария jQuery HE/SHE не будет работать. Поскольку он использует jquery mobile, я по праву предполагаю, что jquery используется для его проекта, и что ответ jquery (который работает) будет честной игрой. – Todd

+0

если jquery не может обработать событие, css уверен, что heckfire тоже не может. – Todd

0

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

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

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

+1

SEO и скрытый/удаленный контент – qwertzman

11

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

pointer-events: none; 

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

+1

Это также отключит любые функции после щелчка по ссылке. Который делает всю ссылку бессмысленной. – Hafenkranich

+1

Да @Hafenkranich, поэтому в своем ответе я написал «Имейте в виду, что JS - лучшее решение, так как это свойство CSS гарантирует, что этот элемент никогда не является объектом каких-либо событий мыши». –

1

Вы можете обернуть свой внутренний текст в промежутке и указать пустой атрибут title.

<a href="" title="Something" class=".some-tooltip-class"><span title="">Your text</span></a> 
+1

SEO понравится этому – qwertzman

+1

, это было бы хорошим решением, к сожалению, не работает для всех браузеров (например, Safari показывает всплывающую подсказку с использованием родительского 'title', если' title' целевого элемента пуст) – guari

Смежные вопросы