2011-11-10 145 views
7

我看过以前的问题,他们都没有真的为我工作,我检查谷歌和我发现的信息似乎很模糊,所以我想我会在这里尝试。隐藏标题标签上悬停

是否有人知道/或解决悬停时显示标题标签的问题。我有一系列的链接和图像,将被分配标题标签,但是,其中一些将显示信息,最好不要弹出悬停。

是否有一个全局函数,我可以用它来适用于所有标题标签的方式?一个例子如下:

<a href="service.php" title="services for cars" /> 

如果可能,我想禁用悬停时出现的标题“汽车服务”。

再次感谢。

回答

9

这应该只是罚款禁用单标题:

<a href="service.php" title="services for cars" onmouseover="this.title='';" /> 

如果您需要的标题后,可以将其还原:

<a href="service.php" title="services for cars" onmouseover="this.setAttribute('org_title', this.title'); this.title='';" onmouseout="this.title = this.getAttribute('org_title');" /> 

这种方式是不通用的,但..有它适用于所有的锚,有这样的JavaScript代码:

window.onload = function() { 
    var links = document.getElementsByTagName("a"); 
    for (var i = 0; i < links.length; i++) { 
     var link = links[i]; 
     link.onmouseover = function() { 
      this.setAttribute("org_title", this.title); 
      this.title = ""; 
     }; 
     link.onmouseout = function() { 
      this.title = this.getAttribute("org_title"); 
     }; 
    } 
}; 

Live test case

编辑:申请相同的多个标签(例如<img>)首先移动代码的一个函数的核心:

function DisableToolTip(elements) { 
    for (var i = 0; i < elements.length; i++) { 
     var element = elements[i]; 
     element.onmouseover = function() { 
      this.setAttribute("org_title", this.title); 
      this.title = ""; 
     }; 
     element.onmouseout = function() { 
      this.title = this.getAttribute("org_title"); 
     }; 
    } 
} 

然后将代码更改为:

window.onload = function() { 
    var links = document.getElementsByTagName("a"); 
    DisableToolTip(links); 
    var images = document.getElementsByTagName("img"); 
    DisableToolTip(images); 
}; 
+0

天才,完美的作品,感谢。 –

+1

干杯!只是一个音符,窗口。onload'将会“覆盖”你可能记得的任何其他onload事件。 :) –

+0

编辑也可以,但只适用于标签,它可以不适用于图像吗? –

0

你可以用” t禁用它们是因为它是浏览器/ html规范的通用部分。但我知道你可以用css和javascript来设计它们,所以display:none应该可以在某处使用。

here

+0

这将工作得很好,但它只有CSS3,我们需要它符合所有浏览器。 –

5

如果您使用“标题”标签的推理是咏叹调合规性,使用ARIA标签来代替。

<a href="service.php" aria-label="services for cars" /> 
+0

这就是我所需要的。谢谢! –

2

尝试设置两个冠军,一个空的,将被浏览器选为提示,然后你需要的:

<a href="service.php" title="" title="services for cars" /> 
0

虽然这已经在标准JS得到回答。

这是一个jQuery解决方案。

$('a').hover( 
    function() { 
     $(this).attr("org_title", $(this).attr('title')); 
     $(this).attr('title', ''); 
    }, function() { 
     $(this).attr('title', $(this).attr("org_title")); 
    } 
); 
0

一个简单的方法是将图像(股利或)的容器上使用CSS:

pointer-events: none; 
cursor: default;