实时查询按键事件
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
函数来插入<br>
标签。
$('p').keypress(function(e)
if(e.which == 13)
e.preventDefault();
document.execCommand('inserthtml', false, '<br/>');
);
在调用 append 函数并添加新的 <p>
之前,这可以正常工作(br 标记插入)。如何让 livequery 取消绑定 keypress 事件并再次绑定?
编辑:<p>
标签具有 contentEditable 属性。我这样做是因为 <br>
标签被包装在 div 中,我只想要 <br>
标签
【问题讨论】:
【参考方案1】:您是否考虑过使用内置的live()
功能?..
描述:为所有匹配当前选择器的元素添加一个事件处理程序,现在和将来。
$('p').live("keypress", function(e)
e.preventDefault();
if(e.which == 13)
document.execCommand('insertHTML', false, '<br/>');
);
【讨论】:
我忘记添加我正在使用 contentEditable。这个功能现在在我附加 html 之前禁用了所有关键事件 我的错。我将 preventDefault() 方法放在禁用每个关键事件的 if() 语句之前。您的代码运行良好。非常感谢!以上是关于实时查询按键事件的主要内容,如果未能解决你的问题,请参考以下文章
JavaFX实战:几种事件监听实现,键盘按键事件监听,鼠标滚轮事件监听,鼠标按键事件监听,鼠标移动事件监听
JavaFX实战:几种事件监听实现,键盘按键事件监听,鼠标滚轮事件监听,鼠标按键事件监听,鼠标移动事件监听