0

让我解释一下这个场景:我有一个 JSP 有一个表,它的源代码对我不可用。在表的<TD>标签内,但是我可以使用 Java 代码动态插入一个锚标签:

String html =
 "<a href=\"javascript:showReleaseVersionsPopUp('" + currentRow.getComponentSeq() + "'); \" class=\"windowletIcon\">" +
                "<img src=\"./images/information-button.png\" width='25' height='20' id='img_"+currentRow.getComponentSeq()+"' " +
                        />" +
 "</a>";
return html;

现在我想要的是,如果鼠标进入这个 Anchor 标签,它会转到 JavascriptshowReleaseVersionsPopUp()并显示一个隐藏的 DIV,但是在这个 Anchor 标签上的 mouseout 事件中,我不希望它转到 JavascripthideReleaseVersionsPopUp()并隐藏 DIV。我宁愿在此锚标记hideReleaseVersionsPopUp()的父标记上的 mouseout 事件上调用Javascript。<TD>

我相信首先要做到这一点,我需要在 Anchor 标记上设置 mouseout 事件处理程序并阻止事件冒泡,然后在其父<TD>标记上设置事件处理程序。

但是,在这里重申一下,我无法访问 JSP 代码和<TABLE>代码,所以我能做的就是通过上面提到的 Java 代码。

任何建议表示赞赏。

4

2 回答 2

0

您可以使用myElement.parentNode来获取 的父元素myElement。然后,您可以对该父元素执行任何您想要的操作。DOM 操作、事件侦听器,应有尽有。

因此,不要在 Anchor 上添加mouseout事件侦听器,而是在 Anchor 的父级上添加。

于 2012-11-23T08:20:31.843 回答
0

您可以将事件处理程序附加到父节点的 onmouseout 事件。

var el = document.getElementById('idOfAnchor').parentNode;

if (el.addEventListener) {

  el.addEventListener('mouseout', hideReleaseVersionsPopUp ); 

} else if (el.attachEvent)  { // for IE8 and previous versions

  el.attachEvent('mouseout', hideReleaseVersionsPopUp );

}
于 2012-11-23T08:33:26.613 回答