Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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 ondragenter警告容器';身份证_Javascript_Jquery_Html_Drag And Drop - Fatal编程技术网

Javascript ondragenter警告容器';身份证

Javascript ondragenter警告容器';身份证,javascript,jquery,html,drag-and-drop,Javascript,Jquery,Html,Drag And Drop,我有一个img,我只想放在div中,名为#div1。当我拖过div时,我想获取容器的id,但这会发出很多警报,而不仅仅是一个 <img id="drag1" src="http://www.vectortemplates.com/raster/batman-logo-big.gif" draggable="true" ondragstart="drag(event, this)" width="336" height=

我有一个img,我只想放在div中,名为
#div1
。当我拖过div时,我想获取容器的id,但这会发出很多警报,而不仅仅是一个

 <img id="drag1" 
      src="http://www.vectortemplates.com/raster/batman-logo-big.gif" 
      draggable="true" 
      ondragstart="drag(event, this)" 
      width="336" 
      height="69"/>

  <div id="div1"
       ondrop="drop(event)"  
       ondragenter="allowDrop(event, this)">
  </div>
那为什么我会收到很多警报

请参见此处的演示:

说明
ondragover
事件是在光标移动到
div
上的每个像素时触发的。 尝试使用
ondragleave
事件,该事件在释放鼠标按钮时触发


解决方案 在您的div上使用
ondraglave
事件:

HTML

解释
ondragover
事件是在光标移动到
div
上的每个像素时触发的。 尝试使用
ondragleave
事件,该事件在释放鼠标按钮时触发


解决方案 在您的div上使用
ondraglave
事件:

HTML


这个公认的答案是不正确的

从MDN:

当在有效的放置目标上放置元素或文本选择时,将触发放置事件

以及:

当拖动的元素或文本选择离开有效的放置目标时,将触发dragleave事件

当触发
ondragleave
事件时调用allowDrop()将允许在拖动离开该元素后拖放到DIV。当用户松开鼠标按钮时,相关元素将不会收到最终的
ondrop
事件


这个问题似乎已经被编辑过了,在这一点上我觉得没问题。OPs问题中引用的JSFIDLE表明了这一点,因为它在div1

上使用了
ondragover
而不是
ondragenter

从MDN:

当在有效的放置目标上放置元素或文本选择时,将触发放置事件

以及:

当拖动的元素或文本选择离开有效的放置目标时,将触发dragleave事件

当触发
ondragleave
事件时调用allowDrop()将允许在拖动离开该元素后拖放到DIV。当用户松开鼠标按钮时,相关元素将不会收到最终的
ondrop
事件


这个问题似乎已经被编辑过了,在这一点上我觉得没问题。OPs问题中引用的JSFIDLE建议这样做,因为它在div1

@Blackersoul上使用
ondragover
而不是
ondragenter
,是否有其他方法可以做到这一点??它与我的脚本崩溃…:'(我看不到任何东西,因为Chrome崩溃了,它被关闭了。请向Google发送一份报告,并尝试更新您的浏览器。此代码在此处工作正常。如果JSFIDLE适合您,则此代码不是问题所在。@Blackersoul,还有其他方法可以做到这一点吗?它与我的脚本一起崩溃…:'(我看不到任何东西,因为Chrome崩溃,它关闭了。请向Google发送一份报告,并尝试更新您的浏览器。此代码在此处运行良好。如果JSFIDLE适合您,则此代码不是问题所在。
function allowDrop(ev, obj)
{
    alert(obj.id);
}
 <div id="div1"  ondragleave="allowDrop(event, this)"></div>