Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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
Javascript 拖放;删除可编辑内容的保留行为_Javascript_Html - Fatal编程技术网

Javascript 拖放;删除可编辑内容的保留行为

Javascript 拖放;删除可编辑内容的保留行为,javascript,html,Javascript,Html,我正在试验Javascript中的拖放功能。到目前为止,它仍在工作,但我在可绘制对象中的可编辑内容不再可用(因此不是通常的方式) 这是一个可拖放对象的示例: <div id="ziel_2" draggable="true" trvdroptarget="true"> <div> some text<br>some text</div> <div contenteditable="true">some text</

我正在试验Javascript中的拖放功能。到目前为止,它仍在工作,但我在可绘制对象中的可编辑内容不再可用(因此不是通常的方式)

这是一个可拖放对象的示例:

<div id="ziel_2" draggable="true" trvdroptarget="true">
    <div> some text<br>some text</div>
    <div contenteditable="true">some text</div>
</div>
编辑2:

contenteditableDiv.addEventListener('mousedown', function() { this.parentNode.setAttribute("draggable", false); });
contenteditableDiv.addEventListener('mouseup', function() { this.parentNode.setAttribute("draggable", true); });
这对我来说是基于一个来自

谢谢你的帮助

试试这个:

if(e.target.hasAttribute("contenteditable")) { return false; }

基本上,这是说,如果目标具有属性,请退出,不要执行任何其他操作:
contenteditable
检查元素和任何父元素的contenteditable状态(有关属性的信息,请参阅)


您可以为contenteditable部分提供一个id,然后在绑定可拖动事件时,排除那些id-需要查看您的代码并添加代码,但我不知道如何排除可拖动元素中的特定元素刚才发现这似乎是一个类似的问题,但也没有结果;(请参阅编辑,它可以工作;)您还可以检查“false”并提前中断-但这给出了基本想法;-)刚刚发现,e.target总是返回外部div,而不是我用鼠标单击的对象。。。但是即使我在dragstart的第一行返回false,没有任何变化,对象仍然是可拖动的;(contenteditableDiv.addEventListener('mousedown',function(){if(e.stopPropagation)e.stopPropagation();});将防止拖动,但也会与对象交互,如选择文本或设置光标;(“this”是单击的元素,“e.target”是一个有听众在听的人吗?我很抱歉忘记了这一点,但很高兴你让它工作了:-)
if(e.target.hasAttribute("contenteditable")) { return false; }
for (var el = e.target; el && el !== el.parentNode; el = el.parentNode) {
   if (el.contentEditable === "true") {
      return false;
   }
}
// Continue processing here