dom-events 相关问题

DOM(文档对象模型)事件允许事件驱动的编程语言在DOM树内的元素节点上注册各种事件处理程序/侦听器。

如何在javascript中获取鼠标相对于窗口视口的位置?

event.pageY 获取相对于整个文档高度的鼠标位置(我假设是 document.documentElement.offsetHeight)。 但是如何获取鼠标相对于当前视口的位置,wh...

回答 5 投票 0

如何检测滚动条上的鼠标按下? (或“scrollEnd”事件)

有人知道如何检测滚动条上的 mouseup 事件吗? 它在 FF 中有效,但在 Chrome 或 IE9 中无效。 我设置了一个快速演示:http://jsfiddle.net/2EE3P/ 总体想法是我想...

回答 6 投票 0

如何识别多个SELECT元素中的双击

我有一个带有 MULTIPLE 属性的 SELECT 元素。 双击列表中的选项时,我想根据单击的选项执行操作。 我知道 OPTION 元素...

回答 6 投票 0

当我在 DOM 事件属性中调用函数时,如何确保它可以访问事件的 `this`?

我试图在单击事件发生时调用函数。 在函数本身中,我提到了这一点: 函数移动(e){ var myId = this.id; 控制台.log(myId); } 我试图在 click 事件发生时调用函数。 在函数本身中,我指的是this: function move(e) { var myId = this.id; console.log(myId); } <button id="A1" onclick="move()">#A1</button> <button id="A2" onclick="move()">#A2</button> <button id="A3" onclick="move()">#A3</button> 但是我运行整个过程,控制台显示“未定义”。当我尝试 alert(this); 时,我得到“[对象窗口]”。 我该如何解决这个问题? this 是代码中的 window 对象。 您可以传递 this 作为参数。 <td id="A1" onclick="move(this)" class="white"></td> 然后: function move(ele){ var myId = ele.id; alert("myId"); } 当从事件处理程序调用函数时,其 this 不是由处理程序设置的(尽管您可以根据 Xdazz 的答案从处理程序传递 this,或根据 Kyle 的答案设置 this)。另一种方法是从与事件关联的事件对象中提取发送者元素: function move(e) { if (!e) e = window.event; var sender = e.srcElement || e.target; //maybe some nested element.. find the actual table cell parent. while (sender && sender.nodeName.toLowerCase() != "td") sender = sender.parentNode; var myId = sender.id; alert(myId); } ​ 您还必须显式传递事件: onclick="move(event)" 请注意,当表格单元格具有嵌套元素时,它们将成为“发送者”,因此要获取所需的元素(即表格单元格),您必须向上遍历。 为了避免所有这些令人头疼的问题,请参阅下面如何通过代码附加处理程序。 现场测试用例. 也就是说,更好的做法是通过代码而不是内联绑定点击事件 - 不要将 HTML 与 JavaScript 混合。为了实现这一点,有这样的代码: window.onload = function() { var arrCells = document.getElementsByTagName("td"); for (var i = 0; i < arrCells.length; i++) { var oCell = arrCells[i]; if (oCell.id && oCell.id.substr(0, 1) == "A") { oCell.onclick = move; } } } 使用上述代码后,您可以从 HTML 中删除内联 onclick= 调用并保留原始函数 - this 将指向单击的表格单元格。 更新了小提琴。 <td id="A1" onclick="move.call(this)" class="white"></td> 现在 this 将引用 td 函数中的 move 元素。 尝试使用事件目标来获取您正在寻找的 dom 元素: function move(e) { alert(e.target); }

回答 4 投票 0

react:调度和监听自定义事件

我想将 Web 组件集成到我的 React 应用程序中。它们定义了一组自定义事件,封闭的 React 应用程序必须监听这些事件。 根据反应文档: 由网络发出的事件

回答 3 投票 0

为什么 wpcf7submit 事件在联系表单 7 中不起作用?

我正在尝试从 WordPress 网站上的联系表单 7 表单捕获 wpcf7submit 事件,以便在表单成功提交时触发警报。然而,该事件似乎并没有触发

回答 1 投票 0

如何模拟鼠标点击?

我知道 document.form.button.click() 方法。但是,我想知道如何模拟 onclick 事件。 我在 Stack Overflow 上的某个地方找到了这段代码,但我不知道如何使用它......

回答 9 投票 0

如何在 Jest 中测试按钮点击

我正在编写一个带有交互式扑克牌的网站。我想检查的是,当我单击 Deck-shuffle-btn 时,函数 shuffleDeck 会运行。 我的 script.js 中有事件监听器

回答 1 投票 0

如何在Shopify JS中强制重新加载和清理数据?

我已经尝试了几天来解决这个问题但无法解决。我需要重新加载我的页面并忘记某些函数中先前设置的值。我尝试了很多方法来做到这一点,但没有一个在我...

回答 1 投票 0

我有一个像“<a href="javascript:;" onclick="return false;">”这样的锚标记。这有什么作用吗?

我正在尝试追踪单击锚标记时正在运行的一些JavaScript。 使用 Firebug 我发现了这段代码: ... W...

回答 3 投票 0

如何强制事件处理程序优先?

我有 JavaScript 代码,在其中我更改了无效事件上的输入字段 css 类,以将错误类添加到具有类 form-row 的父 div。 我还附加了一个事件侦听器...

回答 1 投票 0

在 div 中使用 setPointerCapture 指针向下并释放按钮后触发按钮单击事件 - 为什么?

我有一个简单的网页,带有一个按钮和一个div。该按钮有一个单击事件侦听器,单击时会记录到控制台。 div 有一个 pointdown 事件监听器,它调用 setPointerCapture 来

回答 1 投票 0

当用户点击html5无效表单中的提交按钮时监听什么事件?

我有一个 html5 表单,其中 html5 是必填字段。如果用户提交不完整的表单并向他们显示错误消息,我想捕获用户交互。 我以为我可以使用 inv...

回答 1 投票 0

获取字符输入,跨浏览器

简单的问题——有谁知道可靠的跨浏览器函数来获取从 keydown 事件输入的字符? 我可以从 quirksmode 网格中写一个,但不想重新发明

回答 3 投票 0

无法在DOM中添加正确的可编辑li元素

我正在尝试创建类似待办事项列表的东西。应用程序的结构很简单 - 我有一个用于存储任务数据的状态和 useEffect,它在每个任务上添加事件监听器。任务可能是...

回答 1 投票 0

有 YouTube 浏览器事件的文档吗?

我今天开始查看 Firefox 扩展的代码 (https://github.com/sniklaus/youtube-watchmarker/blob/master/youtube.js),并注意到代码将事件处理程序附加到某些

回答 1 投票 0

为什么currentTarget值为空

我正在学习 event.target 和 event.currentTarget。我想我很清楚两者之间的区别。但陷入了 event.currentTarget 值为 null 的情况。 遵循...

回答 3 投票 0

禁用长触摸事件的选项

在我的JS中,我有一个带有touchstart和touchend事件监听器的图像。 触摸图像可以操作 HTML 的一部分。在某种程度上,只要用户将手指放在图像上,...

回答 2 投票 0

iOS 支持“beforeinstallprompt”事件吗?

Android 和桌面版 Chrome 支持“beforeinstallprompt”事件,该事件可以显示添加到主屏幕横幅。我尝试在 iOS 中为我的 PWA 使用相同的 javascript 代码,但它不起作用。 ...

回答 1 投票 0

如何使用JavaScript模拟鼠标点击?

我知道 document.form.button.click() 方法。但是,我想知道如何模拟 onclick 事件。 我在 Stack Overflow 上的某个地方找到了这段代码,但我不知道如何使用它......

回答 9 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.