2010-05-21 52 views
2

當某個文本輸入具有焦點並且輸入丟失焦點時應該消失時會顯示一個圖層。我試圖這樣做:如何在焦點更改時隱藏的臨時圖層上的鏈接上捕獲點擊

<input type="text" onblur="document.getElementById('hideme').style.display='none'" /> 
<div id="hideme">Textextext <a href="http://disney.com/">disney</a> text</div> 

我的問題是:當用戶點擊鏈接鏈接,瀏覽器不會跟隨此鏈接。在瀏覽器檢查點擊的位置之前,層似乎消失了。我能在這裏做什麼?

一個想法是觀察鼠標是否進入hideme div並且在鼠標光標位於該位置時不關閉它,但是這看起來很複雜。你有更好的主意嗎?順便說一句:你可以很容易地將它粘貼到w3schools的Tryit Editor中。 :-)

想到的

回答

2

第一種方法是使用setTimeout功能:

<input type="text" onblur="setTimeout('document.getElementById(\'hideme\').style.display=\'none\'', 100)" /> 

沒有嚇壞斜線:

function hidemeWithDelay() { 
    setTimeout("document.getElementById('hideme').style.display='none'", 100); 
} 

<input type="text" onblur="javascript:hidemeWithDelay();" /> 
+0

簡單而優雅的解決方案。謝謝!不過,我想知道是否有解決方案對解決方案有較少的感覺。 8-) – 2010-05-25 07:29:41