用纯javascript突出一个可编辑的p标记
Focus out an editable p tag with pure javascript
我有以下html
<p contenteditable>The greatest p tag of all p tags all the time</p>
和这个js
var p = document.querySelector('p');
p.addEventListner('keypress', function (e) {
if (e.which === 13) {
//this.focusout() ??;
}
});
但是这个东西不工作。我如何聚焦与输入击中p标签。请不要使用jquery。谢谢:-)
你拼错了Listener
,所以按键没有被抓住。您还需要防止像这样的按键
var p = document.querySelector('p');
p.addEventListener('keypress', function (e) {
if (e.which === 13) {
this.blur();
e.preventDefault();
}
});
<p contenteditable>The greatest p tag of all p tags all the time</p>
尝试使用event.preventDefault()
,创建input
元素,width
, height
设置为0px
, opacity
设置为0
。如果event.keyCode
= 13
,则用opacity
和0
在input
上调用.focus()
var p = document.querySelector('p');
p.onkeypress = function(e) {
if (e.keyCode === 13) {
e.preventDefault();
document.getElementById("focus").focus();
}
};
#focus {
width: 0;
height: 0;
opacity: 0;
}
<p contentEditable>The greatest p tag of all p tags all the time</p>
<input id="focus" />
jsfiddle https://jsfiddle.net/ben86foo/10/
我认为正确的方法是.blur()
所以以下内容应该足够了:
var p = document.querySelector('p');
p.addEventListener('keypress', function (e) { // you spelt addEventListener wrongly
if (e.which === 13) {
e.preventDefault();// to prevent the default enter functionality
this.blur();
}
});
您可以使用onblur
或onfocusout
事件:
<p onblur="myFunction()" contenteditable>
The greatest p tag of all p tags all the time
</p>
或
<p onfocusout="myFunction()" contenteditable>
The greatest p tag of all p tags all the time
</p>
相关文章:
- 一个页面上有多个Ace编辑器,没有预先设置元素
- 在 SlickGrid 中编辑后,根据不同列中的另一个单元格清除单元格
- 如何使用一个按钮编辑和保存使用Javascript
- 代理一个网站能够在iframe中进行所见即所得编辑-它是如何工作的
- 什么'是从对象列表中一次编辑一个对象的正确Angular/Firebase方法
- 请我需要一个可以编辑mp3 URL的JavaScript代码
- 内容可编辑-根据类型从一个跨度到另一个跨度克隆文本
- 我在Phaser有一个项目.我想在画布上的元素上做一个用户图像编辑器
- 如何在一个页面中使用多个markDown编辑器
- 制作一个“;输入“;按钮文本不可编辑
- jQueryAjax SQL-如果我在多个用户上单击编辑,则Ajax会更新我单击的所有内容.不是最后一个点击
- 当一个单元格被编辑时,是否有一个事件触发,但值没有'不要改变
- 在表中,每行都有一个编辑按钮.显示或隐藏按钮取决于本行中的另一个值
- 让span元素提交一个编辑表单
- 如何在一个编辑器中使多个行块只读
- 用一个编辑按钮在两个表单之间切换
- 如何加载一个编辑器
- 当我点击另一个x编辑时,关闭模糊不工作
- 使用Flux构建一个编辑表单,它实际向服务器发送数据:动作、存储、视图
- 我如何使用fanybox弹出一个编辑表单与现有的值填充