当前位置: 首页 > 知识库问答 >
问题:

js addeventlistener:对dragenter使用捕获,但不适用于输入元素

太叔栋
2023-03-14

我在保存输入项的容器div上有一个 dragenter 的事件侦听器。但它仅适用于父 div,如果将鼠标悬停在输入上,则会触发 dragleave 事件。捕获是否意味着输入正在触发父事件?

下面添加了事件监听器。

addDragStartListen: function(){
        var fields = document.querySelectorAll('.formFieldType');
        [].forEach.call(fields, function(field) {
            field.addEventListener('dragstart', FORMBUILD.DragStart, true);
        });

        var DItems = document.querySelectorAll('.f-row');
        [].forEach.call(DItems, function(DItem) {
            DItem.addEventListener('dragenter', FORMBUILD.DragEnter, false);
            DItem.addEventListener('dragover', FORMBUILD.DragOver, true);
            DItem.addEventListener('dragleave', FORMBUILD.DragLeave, false);
            DItem.addEventListener('drop', FORMBUILD.DragDrop, false);
        });



    },

当您将元素拖到输入上时,draglet会被触发,请参阅此处以获取显示问题的代码。http://codepen.io/ambrosedheffernan/pen/PPqdMd

注意:codepen中的代码在dragenter上有remove listener,在dragleave上有addlistener。

我正在测试铬,这应该支持捕获,但为什么我不能为输入执行此操作?默认情况下,是否有其他事件优先?

共有1个答案

芮念
2023-03-14

捕获意味着事件将从父项触发到子项。在你的情况下,我认为当你将项目拖到容器,然后拖到它的子输入时,dragenterdradraleave会被触发容器,dragenter会触发输入。

作为一个想法,您可以创建一个变量来保存实际的拖动进入/离开状态,即当<code>dragenter

 类似资料:
  • 问题内容: Pycharm 2016.2.3,Mac OS X 10.11.1,Python 3.5(Homebrew); 我有这个文件夹结构 所以我的预期输出是 从PyCharm运行时,此方法工作正常。但是,当我从终端运行它时,我收到一个ImportError: 我已经找到了这个问题,这是关于相同的问题。但是,没有建议的解决方案对我有用,因为我确实使用的是与PyCharm相同的Python解释器

  • 两个无状态EJB及其远程接口。EJB1被注入EJB2 > EJB2还使用一些可选包(在其清单中声明) WebLogic应用服务器(10.3.3) 两个EJB被打包成两个单独的JAR文件 如果将两个JAR文件打包到一个EAR文件中并部署,则依赖注入工作。但是如果我单独部署它们,即使我首先部署了EJB1并在Weblogic(com.xxx.EJB1#com.xxx.layer1中验证了全局JNDI名称

  • 问题内容: 我正在使用JUnit编写集成测试,以自动化基于控制台的应用程序的测试。该应用程序是家庭作业,但这不是家庭作业。我想使这些测试自动化以提高生产率- 我不想回头再重新测试应用程序中已经测试过的部分。(使用单元测试的标准原因) 无论如何,我找不到或找不到有关捕获输出的文章,因此我不能这样做,也不能提供自动输入。我不在乎输出/输入是否进入控制台/输出窗格。我只需要执行测试并验证输出是否与输入相

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 背景: 最近我一直在开发一个程序,该程序对输入数据文件(用户以完整路径或名称的形式给出,如果它位于程序创建的名为inputFiles的文件夹中)执行一些数据分析并吐出一堆输出数据文件(使用CSV)。 问题: 我遇到的问题是,当我运行时。jar在我的Windows机器上,它将创建3个文件夹(InputFiles、TempFiles和OutPutFiles),但当程序在Mac上时,GUI会启动,但不会