2009-10-07 33 views
0

我有一些HTML這樣的東西兒童DIV對家長的div的mouseout消失

<div id='divItemHolder'onMouseout='HideEditDiv()' onMouseover='ShowEditDiv()><div id='itemName'></div><div id='divEdit'></div></div> 

,並在我的腳本

function ShowEditDiv() { 
    $("#itemName").removeClass().html("<a href=\"javascript:Edit()">Edit</a>").addClass("divEdit"); 
    } 
function HideEditDiv() { 
$("#itemName").html("&nbsp;").addClass('divEdit'); 

} 

我的要求是,以顯示編輯鏈接時,用戶將光標放在下面的整個主div(divItemHolder)並在他移出時隱藏它。這工作正常.IT顯示編輯鏈接。但是當我將光標放在編輯鏈接上時,它將消失。即使我的點擊功能也沒有開火!

任何人都可以解決這個問題嗎?

+0

您可以添加HTML? – Eric 2009-10-07 15:16:13

回答

1

你沒有逃脫你的",你忘了結束另一個。試試這個:

function ShowEditDiv() 
{ 
    $("#itemName").removeClass().html("<a href=\"javascript:Edit()\">Edit</a>").addClass("divEdit"); 
} 
function HideEditDiv() 
{ 
    $("#itemName").empty().addClass('divEdit'); 
} 

這裏有一個更好的方法:

$(document).ready(function() 
{ 
    $(".parent") 
     .mouseenter(function() 
     { 
      $(this).children(".edit").show(); 
     }) 
     .mouseleave(function() 
     { 
      $(this).children(".edit").hide(); 
     }) 
     .children(".edit").hide(); 
} 

隨着HTML這樣的:

<div class="parent"> 
    ... 
    <div class="edit"> 
     <a href="javascript:Edit()">Edit</a> 
    </div> 
</div> 
<div class="parent"> 
    ... 
    <div class="edit"> 
     <a href="javascript:Edit()">Edit</a> 
    </div> 
</div> 
... 
+0

你在hideEditDiv函數中錯過了一個''' – jantimon 2009-10-07 15:18:38

+0

謝謝。這是Shyju做出的另一個錯誤。 – Eric 2009-10-07 15:19:50

+0

但是這不是問題。我理解當我們進入(mouseover)DIV中的任何元素時,父代的mouseover事件被稱爲 – Shyju 2009-10-08 01:41:48