实时查询按键事件

Posted

技术标签:

【中文标题】实时查询按键事件【英文标题】:livequery keypress event 【发布时间】:2011-06-01 18:21:01 【问题描述】:

(我使用 jquery 中的 before() 函数将新的 <p> 元素附加到 div 层。

$('#AddParagraphButton').click(function() 
    $('#TheLayer').before('<p contentEditable='true'>Some text...</p>');    
);

这里我设置了keypress 函数来插入&lt;br&gt; 标签。

$('p').keypress(function(e)
    if(e.which == 13)
       e.preventDefault();  
       document.execCommand('inserthtml', false, '<br/>');
    
);

在调用 append 函数并添加新的 &lt;p&gt; 之前,这可以正常工作(br 标记插入)。如何让 livequery 取消绑定 keypress 事件并再次绑定?

编辑:&lt;p&gt; 标签具有 contentEditable 属性。我这样做是因为 &lt;br&gt; 标签被包装在 div 中,我只想要 &lt;br&gt; 标签

【问题讨论】:

【参考方案1】:

您是否考虑过使用内置的live() 功能?..

描述:为所有匹配当前选择器的元素添加一个事件处理程序,现在和将来。

$('p').live("keypress", function(e)
    e.preventDefault();
      if(e.which == 13)
         document.execCommand('insertHTML', false, '<br/>');
    
);

【讨论】:

我忘记添加我正在使用 contentEditable。这个功能现在在我附加 html 之前禁用了所有关键事件 我的错。我将 preventDefault() 方法放在禁用每个关键事件的 if() 语句之前。您的代码运行良好。非常感谢!

以上是关于实时查询按键事件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Apache Beam 按键处理事件的总排序

按键事件处理

JavaFX实战:几种事件监听实现,键盘按键事件监听,鼠标滚轮事件监听,鼠标按键事件监听,鼠标移动事件监听

JavaFX实战:几种事件监听实现,键盘按键事件监听,鼠标滚轮事件监听,鼠标按键事件监听,鼠标移动事件监听

JavaFX实战:几种事件监听实现,键盘按键事件监听,鼠标滚轮事件监听,鼠标按键事件监听,鼠标移动事件监听

js按键事件