2012-11-01 64 views
1

我無法爲我應用覆蓋的div綁定按鍵。 貝婁是代碼。綁定按鍵不工作 - jquery工具覆蓋

<div> 
    Content <a href="#" id="load">Load overlay</a> 
</div> 

<div id="overlayDiv" class="overlay"> 
    <div id="someInnerDiv"> 
     Text 

    </div> 
</div> 

<script type="text/javascript> 
    function LoadOverlay() 
    { 
     $('#overlayDiv').overlay(); 
     $('#someInnerDiv').keypress(function() { alert (' key was pressed'); }); 
     $('#someInnerDiv').focus(); 
    } 
    $("#load").click(LoadOverlay);​ 
</script> 

警報沒有顯示出來。 以下是jsfiddle上的代碼:http://jsfiddle.net/JEmgg/4/

我在猜測它是捕獲事件的疊加層,但我無法弄清楚。

+0

你正在嘗試做什麼?打'esc'來關閉覆蓋層? –

回答

2

的問題是,你不能沒有一個文本插入文本,輸入型文本或其它輸入元素。 試試這個代碼和它的工作原理: DEMO

<div id="overlayDiv" class="overlay"> 
    <div id="someInnerDiv"> 
     Text 
     <input type="text" name="test" id="test"/> 
    </div> 
</div> 
+1

除非你在'$(document)'處使用,然後按鍵會工作,但不認爲這是事實。 –

+0

不,我認爲情況並非如此,因爲他想抓住div的按鍵 –

3

按鍵事件如果用一些textarea或輸入類型='文本'替換該div,則在鍵入時會發生按鍵事件,並且警報將起作用。

DEMO:http://jsfiddle.net/JEmgg/5/

替換:

<div id="someInnerDiv" ></div> 

<input type="text" id="someInnerDiv" />