2

我有一个带有下划线的链接,一旦你将鼠标悬停在它们上面。我onmouseover在 div 中添加了一个 JS 事件,现在当我将鼠标悬停在超链接上时,它们不再加下划线,而是执行我在事件中放入的任何操作onmouseover

来自函数的代码:

function addPlus(elementId)
{
 if(typeof addPlus.backup == 'undefined')
  addPlus.backup = document.getElementById(elementId).innerHTML;
 if(full)
 {
  document.getElementById(elementId).innerHTML = plusCode + addPlus.backup;
  return backup;
 }
 else
  return snippet;
}

div代码:

<div class="nav_bar" id="navbar1" onmouseover="addPlus('navbar1')" onmouseout="removePlus('navbar1')">

编辑:我已经尝试过return true;,return Boolean(true);return new Boolean(true);, 试图按照乍得的建议“返回真实”。它们都不起作用。对不起,我真的不知道该怎么办;我是 Javascript 的新手。

编辑 2:该死,我刚刚意识到乍得意味着我在 div 标签中返回 true。所以现在我有了<div class="nav_bar" id="navbar1" onmouseover="addPlus('navbar1');return true" onmouseout="removePlus('navbar1')">,但不幸的是它仍然不起作用。

4

3 回答 3

1

如果您不想触发 js 事件,则应在鼠标进入时停止事件传播<a>。尝试为每个带有 return false 的超链接添加 onmouseover 事件处理程序<a onmouseover="return false" ...- 这应该会有所帮助。

于 2010-11-21T11:27:24.530 回答
0

要让事件传播,您需要从 onmouseover 处理程序返回 true。

于 2010-11-17T17:43:45.070 回答
0
  1. 如果您使用 CSS 而不是 JavaScript 来为链接添加下划线,则不会发生这种情况
  2. 您可能有一些烂代码onmouseover在 HTML 或 JavaScript 中显式设置处理程序来处理链接下划线(而不是正确使用addEventListener),然后您正在覆盖此处理程序。如果没有更多信息,很难猜测可能出了什么问题。提供代码示例以获得更多帮助。
于 2010-11-17T17:46:04.880 回答