在子元素的鼠标悬停时调用父Div的鼠标输出功能

时间:2009-10-08 05:21:00

标签: javascript mouseover inline-editing

我的页面中有以下HTML

    <div id='divContainer1' onmouseover=ShowEditDiv(1) onmouseout=HideEditDiv(1)  class='divClcContainer'>
        <div id='divSlNo1'>1</div>
        <div id='divItem1'>This is content</div>
        <div id='divEditLink1'></div>
    </div>  
    <div id='divContainer2' onmouseover=ShowEditDiv(2) onmouseout=HideEditDiv(2)  class='divClcContainer'>
        <div id='divSlNo2'>2</div>
        <div id='divItem2'>This is content2</div>
        <div id='divEditLink2'></div>
    </div>  

并在我的javascript中

function ShowEditDiv(divId)
{
  $("#divEditLink" + divId).html("<a href=\"javascript:Edit(divId)\"><img  src='edit_icon.gif' alt='Edit' title='Edit' /></a>").addClass("divEdit");
}
function HideEditDiv(divId) 
{  
  $("#divEdit" + divId).empty().addClass('divEdit');
}

我的要求是当用户将鼠标放在主div上时显示编辑链接。现在它的工作正常。但是当我将鼠标放在保存编辑图像/链接的div上时,它正在消失。我发现当我将鼠标放在编辑div上时,父div的mouseout函数被调用。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:5)

此错误的解决方案是使用mouseenter和mouseleave事件而不是mouseover和mouseout。

此链接中有关此内容的更多信息

http://jquery-howto.blogspot.com/2009/04/problems-with-jquery-mouseover-mouseout.html

答案 1 :(得分:1)

使用

子元素函数中的

stopPropagation

  

停止将事件冒泡到   父元素,阻止任何父母   处理者被通知   事件