2

我正在使用contenteditable="true"标签使某些标签中的内容可编辑。我可以使用该标记成功编辑任何元素中的内容,但是当我尝试keydown使用 jQuery 检测事件时出现问题。

jsFiddle 演示

请注意,段落元素中的“Hello World”是可编辑的。按钮文本“我是按钮”也是可编辑的,在按钮元素内。

当您键入段落元素时,keypresses每按下一个键就会递增。但是,当您键入按钮元素时,keypresses不会增加。这是我的问题。显然,keydown即使在段落元素内检测到该事件,也未在按钮元素内检测到该事件。

为了证明这不是 JS 编写方式的问题,单击段落或按钮元素都会增加clicks计数器。

所以我的问题是,为什么没有keydown在按钮元素内检测到事件,我该怎么做才能检测到它?

4

1 回答 1

1

这个变通方法怎么样?

JSFiddle:http: //jsfiddle.net/vA74w/

将按钮内容放入spanwithcontenteditable=true

HTML

<button>&nbsp;<span contenteditable='true'>I'm a Button</span>&nbsp;</button>

&nbsp;不允许用户删除按钮。

完成编辑后需要从按钮文本中修剪&nbsp;和标记。span

于 2013-08-20T08:23:44.960 回答