如果在此元素上发生onmouseout事件,是否可以检查元素父元素的onmouseout事件?

时间:2012-11-23 08:13:28

标签: javascript html html-table event-handling

让我解释一下这种情况: 我有一个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标签,它会转到Javascript showReleaseVersionsPopUp()并显示隐藏的DIV,但是在此Anchor标签上的mouseout事件中,我不希望它转到Javascript hideReleaseVersionsPopUp()并隐藏DIV。我更希望在此Anchor标记的Parent hideReleaseVersionsPopUp()标记上的mouseout事件上调用Javascript <TD>

我相信首先要执行此操作我需要在Anchor标记上设置mouseout事件处理程序并阻止事件冒泡,然后在其父<TD>标记上设置事件处理程序。

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

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:0)

您可以使用myElement.parentNode获取myElement的父元素。然后,您可以使用您想要的父元素执行任何操作。 DOM操作,事件监听器,您可以命名它。

所以,不要在Anchor上添加mouseout事件监听器,而是在Anchor的父级上添加。{/ p>

答案 1 :(得分: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 );

}
相关问题