Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何防止在Contenteditable元素中创建新标记?_Jquery_Tags_Element_Contenteditable - Fatal编程技术网

Jquery 如何防止在Contenteditable元素中创建新标记?

Jquery 如何防止在Contenteditable元素中创建新标记?,jquery,tags,element,contenteditable,Jquery,Tags,Element,Contenteditable,我将感谢任何帮助,谢谢 因此您需要检测ENTER键以防止其新行行为 这也是触发一个变更元素的正确时机 $(“[contentedidated='true']”)。在(“keydown”上,函数(e){ 如果(e.which==“13”){//13是回车键 log(“回车键!!”); $(this.trigger(“changelement”);//此处为自定义事件;) 返回false; } }); //自定义事件处理程序:关注下一个事件! $(“[contenteditable='true']

我将感谢任何帮助,谢谢

因此您需要检测ENTER键以防止其新行行为

这也是触发一个变更元素的正确时机

$(“[contentedidated='true']”)。在(“keydown”上,函数(e){
如果(e.which==“13”){//13是回车键
log(“回车键!!”);
$(this.trigger(“changelement”);//此处为自定义事件;)
返回false;
}
});
//自定义事件处理程序:关注下一个事件!
$(“[contenteditable='true']”)。在(“changeElement”,function()上{
$(this.next().focus();
});


我通过检查contenteditable元素在一定间隔后是否包含
p
标记来实现这一点

如果发生这种情况,子元素将移动到父元素的前面

setInterval(function () {
    $('p').attr('contenteditable','true');
    $('h1').attr('contenteditable','true');
},100);

感谢您的回答,但它似乎禁用了enter键的使用。在按下enter键后,新元素不会在您之前所在的元素之外创建。我没有看到任何应该创建新元素的内容。。。但是如果你把它放在“自定义事件”中,而不是放在“下一个焦点”中,它应该可以工作。
<p contenteditable="true">
    <p>One</p>
    <p>Two</p>
</p>
<p contenteditable="true"></p>
<p contenteditable="true">One</p>
<p contenteditable="true">Two</p>
setInterval(function () {
    $('p').attr('contenteditable','true');
    $('h1').attr('contenteditable','true');
},100);
setInterval(function () {     
    $("[contenteditable='true']").each(function() {
        finder = $(this).find("p");
        $(finder).insertAfter($(this));
        $(finder).focus();
    });    
},100);