首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用纯javascript突出可编辑的p标记

问用纯javascript突出可编辑的p标记
EN

Stack Overflow用户
提问于 2015-10-27 03:54:15
回答 4查看 1.4K关注 0票数 2

我有以下html

代码语言:javascript
复制
<p contenteditable>The greatest p tag of all p tags all the time</p>

而这个js

代码语言:javascript
复制
var p = document.querySelector('p');

p.addEventListner('keypress', function (e) {
    if (e.which === 13) {
        //this.focusout() ??;
    }
});

演示

但这东西不管用。如何使p标签与回车命中对焦。不需要jquery。谢谢:-)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-10-27 04:08:53

你拼错了Listener所以按键没被抓到。你也会想要阻止这样的按键

​

代码语言:javascript
复制
var p = document.querySelector('p');
p.addEventListener('keypress', function (e) {
    if (e.which === 13) {
        this.blur();
        e.preventDefault();
    }
});
代码语言:javascript
复制
<p contenteditable>The greatest p tag of all p tags all the time</p>

​

票数 4
EN

Stack Overflow用户

发布于 2015-10-27 03:56:09

我认为正确的方法是.blur()

因此,以下几点就足够了:

代码语言:javascript
复制
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();            
    }
});
票数 3
EN

Stack Overflow用户

发布于 2015-10-27 04:06:50

尝试使用event.preventDefault(),创建具有width、height设置为0px、opacity设置为0的input元素。如果event.keyCode等于13,则使用opacity 0调用input上的.focus()

代码语言:javascript
复制
var p = document.querySelector('p');

p.onkeypress = function(e) {
  if (e.keyCode === 13) {
    e.preventDefault();
    document.getElementById("focus").focus();
  }
};
代码语言:javascript
复制
#focus {
  width: 0;
  height: 0;
  opacity: 0;
}
代码语言:javascript
复制
<p contentEditable>The greatest p tag of all p tags all the time</p>
<input id="focus" />

​

jsfiddle https://jsfiddle.net/ben86foo/10/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33359694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档