博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让div span等元素能响应键盘事件
阅读量:6801 次
发布时间:2019-06-26

本文共 1807 字,大约阅读时间需要 6 分钟。

在我这几天的工作中遇到了一个问题,google了一下找到了解决方案,不过是英文的,我简单翻译下让更多的人能看懂

译文如下:

我有一个可编辑的div,并且在DIV里面还有一个可编辑的span,我想要让span能响应键盘事件,

这里是测试JS代码:

$(function(){    $('#someid').keypress(function(event){alert('test');});});//出自 尊重作者辛苦劳动成果,转载请注明出处,谢谢!

这里是测试html代码:

editable follows:
Some TEXT

如果你在浏览器中测试,你会看见,当你在Some TEXT上press key时,没有‘test’弹出框弹出,我知道这个问题的发生原因是因为事件是从span的父节点div发出来的,所以span没有触发到事件,当然也是因为span没有焦点造成的,所以我想要谁帮助我找出解决方案。

最终终于有好心人帮助解决了这个问题

关于你的问题的解决方案代码我已经提交到了 并且工作正常

FF, Opera, Chrome, Safari, IE8 ..中测试

#someid需要获得焦点才能触发keypress,如果你想要你的代码获得焦点在元素创建后立即使用.focus()方法

function AppendSpan(){    $('#mydiv').append('Some TExt');    //Then I want to handle the keypress event on the inserted span    $('#someid').keypress(function(event){          //do something here          alert(this.id);    }).focus();// bring focus to the element once you append it..}//出自 尊重作者辛苦劳动成果,转载请注明出处,谢谢!

追加:

两个方法来触发事件,(事实上需要使用contenteditable属性),不确定你是否能接受这种情况

1、包裹一个可编辑span在另一个的外层,并且设置它的属性contenteditable="false"

demo js:

function AppendSpan(){    $('#mydiv').append('Some TExt');    //Then I want to handle the keypress event on the inserted span    $('#someid').keypress(function(event){alert('test');});}$(function(){    $('#mydiv').keypress(function(event){AppendSpan();});});//出自 尊重作者辛苦劳动成果,转载请注明出处,谢谢!

demo html:

editable follows:

 

2、让你的#mydiv处在非编辑状态,当你需要触发span的键盘事件时

demo js:

function AppendSpan(){    $('#mydiv').removeAttr('contenteditable').append('Some TExt');    //Then I want to handle the keypress event on the inserted span    $('#someid').keypress(function(event){alert('test');});}$(function(){    $('#mydiv').keypress(function(event){AppendSpan();});});//出自 尊重作者辛苦劳动成果,转载请注明出处,谢谢!

demo html:

editable follows:

 

转载于:https://www.cnblogs.com/ahjesus/archive/2012/11/13/2767886.html

你可能感兴趣的文章
如何削减高速语言?
查看>>
山寨游戏的未来Apple App Store
查看>>
JSON.parse()和JSON.stringify()
查看>>
python出现UnicodeEncodeError有可能产生的另一个原因
查看>>
域名绑定,解析总结
查看>>
JAVA 网络长短连接
查看>>
transform,transition,animation 的混合使用——进阶
查看>>
【网络流】 HDU 3468 Treasure Hunting
查看>>
foobar2000播放APE格式音乐的解决办法
查看>>
Spring+Quartz实现定时任务的配置方法(插曲)
查看>>
一个基于cocos2d-x 3.0和Box2d的demo小程序
查看>>
(转)淘淘商城系列——MyBatis分页插件(PageHelper)的使用以及商品列表展示
查看>>
struts2前端页面读取Clob/BLOB
查看>>
【MongoDB】深入了解MongoDB不可不知的十点
查看>>
[ACM] POJ 2635 The Embarrassed Cryptographer (同余定理,素数打表)
查看>>
又一次发现Oracle太美之glogin.sql
查看>>
hdu5387 Clock
查看>>
安装redis出现cc adlist.o /bin/sh:1:cc:not found
查看>>
初步认识Tensorflow
查看>>
tab 切换实现方法
查看>>