【问题标题】:binding keypress not working - jquery tools overlay绑定按键不起作用 - jquery 工具覆盖
【发布时间】:2012-11-01 15:44:14
【问题描述】:

我无法为我应用覆盖的 div 绑定按键。 下面是代码。

<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/

我猜是叠加层捕捉到了事件,但我想不通。

【问题讨论】:

  • 你想做什么?点击esc关闭覆盖?

标签: overlay jquery jquery-tools


【解决方案1】:

如果您用一些文本区域或输入 type='text' 替换该 div,keypress 事件会起作用,因此当您键入时,keypress 事件会发生并且警报会起作用。

演示:http://jsfiddle.net/JEmgg/5/

替换:

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

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

【讨论】:

    【解决方案2】:

    问题是你不能在没有文本区域、输入类型文本或其他输入元素的情况下插入文本。 试试这个代码,它的工作原理: DEMO

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

    【讨论】:

    • 除非你在$(document)上使用,否则按键会起作用,但不要认为是这种情况。
    • 不,我认为情况并非如此,因为他想在 div 内捕获按键
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    相关资源
    最近更新 更多