8

我查看了以前的问题,但没有一个对我真正有用,我已经检查了谷歌,我发现的信息似乎很模糊,所以我想我会在这里尝试。

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

是否有一个全局函数可以用来将其应用于各种标题标签?一个例子如下:

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

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

再次感谢。

4

6 回答 6

15

这应该可以很好地禁用单个标题:

<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");
        };
    }
};

现场测试用例

编辑:为更多标签(例如<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);
};
于 2011-11-10T10:58:07.107 回答
15

如果您使用“title”标签的原因是为了符合 Aria,请改用 aria-label。

<a href="service.php" aria-label="services for cars" />
于 2015-04-24T17:19:47.790 回答
1

尝试设置两个标题,一个将被浏览器选择为工具提示的空标题,然后是您需要的标题:

    <a href="service.php" title="" title="services for cars" />
于 2016-04-13T12:46:08.480 回答
1

尽管这已经在标准 JS 中得到了回答。

这是一个 jQuery 解决方案。

$('a').hover( 
  function() {
        $(this).attr("org_title", $(this).attr('title'));
        $(this).attr('title', '');
  }, function() {
        $(this).attr('title', $(this).attr("org_title"));
  }
);
于 2017-11-24T12:19:26.260 回答
1

一个简单的替代方法是在图像的容器(div 或 a)上使用 CSS:

pointer-events: none;
cursor: default;
于 2018-01-18T13:31:17.803 回答
0

您不能禁用它们,因为它是浏览器/html 规范的通用部分。但我知道您可以使用 css 和 javascript 设置它们的样式,因此 display:none 应该可以在某处正确使用。

这里

于 2011-11-10T10:59:09.593 回答