event-listener 相关问题

在应用程序或系统中发生特定事件时触发的抽象对象。

在点击事件中多次addEventListener

我在尝试捕获 javascript 文件中的事件时遇到问题。单击这些按钮时我需要处理一些按钮。它们有不同的行为,例如,有些添加一些元素,有些则可以

回答 2 投票 0

如何防止事件监听器触发多个下拉菜单?

当我与多复选框下拉菜单交互时,我试图通过触发 AJAX 请求来使用后端 Flask 服务器获取数据。本质上,我有两个名为“...

回答 1 投票 0

事件监听器中的函数语法[重复]

我对编码还很陌生,如果这是一个有明显答案的问题,我很抱歉。 我在 JavaScript 中使用事件侦听器来切换网页上段落的显示。我可以让它工作...

回答 1 投票 0

如何使用事件侦听器将标题和页脚文本更改为输入文本框的提示

我正在尝试将页眉和页脚文本从当前所说的更改为输入到文本框中的任何内容。代码不能是 document.write() 页眉使用h1,页脚使用h2, h的代码...

回答 1 投票 0

动态创建的 HTML 元素不适用于事件侦听器。 >:[

简而言之,我想在我的国际象棋中实现拖放(就像你可以拖动棋子一样)。但是有些不对劲。 问题: 动态创建的棋子(右边那个)需要...

回答 1 投票 0

我想知道如何在 laravel 10 中将 Laravel websockets 用于移动应用程序

我目前正在构建一个拼车应用程序,前端使用 Flutter,后端使用 Laravel 10。我的目标是接收司机位置的实时更新(纬度和经度......

回答 0 投票 0

动态 Livewire 监听器:监听器不监听触发事件

我在使用动态 Livewire 侦听器时遇到了麻烦。我试图在同一页面上使用两个组件,其中一个组件有一个输入字段,另一个是应该触发 ev 的模态...

回答 0 投票 0

如何监听发送到 spring 状态机的每个事件

我有一个用例,我想监听每个发送到我的 spring 状态机的事件并记录它们。目前能看到spring只支持监听OnTransitionStartEvent,

回答 0 投票 0

删除在循环中创建的 Javascript 事件侦听器

我有一个包含多个相似元素的网站,需要应用事件监听器: 我有一个包含多个相似元素的网站,需要应用事件监听器: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example</title> </head> <body> <a href = '#' class = "click_me">Click me</a> <br> <a href = '#' class = "click_me">Click me</a> <br> <a href = '#' class = "click_me">Click me</a> <script src = "example.js"></script> <script> new myClass(5); </script> </body> </html> 我通过遍历元素来做到这一点。我希望回调函数能够访问元素、父类实例和事件。所以我想我必须在循环中定义回调函数。但是,这使得很难删除事件侦听器。在这个例子中,我调用了 setUpEventHandlers 方法两次,第二次调用应该删除第一次调用创建的事件侦听器。但是,当我加载网页时,我可以在检查器中看到两组侦听器。我想这是因为在循环中重新定义了函数,所以没有被removeEventListener当作同一个函数。我怎样才能删除第一组听众? class myClass { // Class constructor. constructor(input_foo) { // Process input. this.foo = input_foo; // Create event listeners for this instance. this._setUpEventHandlers(); // Re-create event listeners (should remove previous ones). this._setUpEventHandlers(); }; // Loops over elements and creates event listeners. _setUpEventHandlers() { // Loop over elements. document.querySelectorAll('.click_me').forEach(element => { // Define event listener function with "this" bound and // appropriate signature. var onClickFunction = function(event) { this.onClick(element, event); }.bind(this); // Remove existing event listeners. element.removeEventListener('click', onClickFunction, false); // Add event listener function for this element. element.addEventListener( 'click', onClickFunction, false ); } ); } // Define event listener function. onClick(element, event) { event.preventDefault(); console.log(this); console.log(event); console.log(element); console.log('<br>'); } } 可以使用箭头函数来避免bind。您还可以通过访问 event.currentTarget 而不是传递对元素的引用来简化您的点击处理程序调用。因此,你可以这样做: class MyClass { constructor(input_foo) { this.foo = input_foo; this.onClickFunction = e => this.onClick(e); this._setUpEventHandlers(); this._setUpEventHandlers(); }; _setUpEventHandlers() { document.querySelectorAll('.click_me').forEach(element => { element.removeEventListener('click', this.onClickFunction); element.addEventListener('click', this.onClickFunction); }); } onClick(event) { event.preventDefault(); console.log(this.constructor.name); console.log(event.constructor.name); console.log(event.currentTarget.constructor.name); console.log(event.currentTarget.innerText); console.log('<br>'); } } let obj = new MyClass(); <div class="click_me">hello</div> <div class="click_me">world</div> 我调整了您的代码,使其按您的预期工作。 它对你不起作用的原因是因为永远不会保存对回调方法处理程序的引用。 必须使用与用于实例化新事件的完全相同的处理程序来删除事件。在您的情况下,您引用了一个调用事件处理程序方法的匿名函数,并且您不能重新引用匿名函数。试试这个: class myClass { // Class constructor. constructor(input_foo) { // Process input. this.foo = input_foo; // Create event listeners for this instance. this._setUpEventHandlers(); // Re-create event listeners (should remove previous ones). this._setUpEventHandlers(); }; // Loops over elements and creates event listeners. _setUpEventHandlers() { // when onClickFunction is called, the HTML element that triggered the click and the Event object are automatically passed to the function, no need to specifically define them as arguments let onClickFunction = this.onClick; // Loop over elements. document.querySelectorAll('.click_me').forEach(element => { // Remove existing event listeners. element.removeEventListener('click', onClickFunction, false); // Add event listener function for this element. element.addEventListener( 'click', onClickFunction, false ); } ); } // Define event listener function. onClick() { event.preventDefault(); console.log(this); // references the element that triggered the event console.log(event); // references the Event object that was triggered console.log('<br>'); } } 在您的代码中,每次调用 _setUpEventHandlers 方法时,以下行都会创建一个新的匿名函数: var onClickFunction = function(event) { this.onClick(element, event); }.bind(this);

回答 2 投票 0

如何定义操作顺序

目前我有一个新表格,用户填写该表格以创建请求。一旦用户在表单中输入信息并单击提交按钮,事件处理程序就会触发 Promise.all 请求。

回答 0 投票 0

(已解决)导航栏滚动到视图中导致单击时链接失败

编辑:问题已解决。我将保留此帖子,以帮助可能面临相同问题的其他人。该错误与让浏览器处理导航栏上的点击有关。通过添加

回答 0 投票 0

导航栏滚动到视图导致点击时链接失败

编辑:问题已解决。我将保留此帖子,以帮助可能面临相同问题的其他人。该错误与让浏览器处理导航栏上的点击有关。通过添加

回答 0 投票 0

Javascript – 导航栏滚动到视图中导致单击时链接失败

我正在开发在线餐厅菜单。它有一个固定在顶部的水平导航栏。导航栏上的链接水平滚动,内容垂直滚动。链接指向#

回答 0 投票 0

Javascript – 导航栏滚动到视图功能导致单击时同一页面部分链接失败

我正在开发在线餐厅菜单。它有一个固定在顶部的水平导航栏。导航栏上的链接水平滚动,内容垂直滚动。链接指向#

回答 0 投票 0

如何逐字创建检查器?

如果单词发音正确,我如何创建单词发音检查器,下划线和单词将变为绿色。如果它错了,它就会变成红色。 我该如何实施...

回答 0 投票 0

监听焦点事件时如何防止滚动?

我想监听输入文本元素的焦点事件并防止滚动。我该怎么做? 我试过这个但它不会阻止滚动: inputTextElement.addEventListener('焦点', (

回答 0 投票 0

依赖注入通过 __construct() 到 Symfony/Doctrine EntityListener

我正在努力解决以下问题: 我为我的一个实体创建了一个 EntityListener。 命名空间 App\Event\EventListener\Vendor; 使用 App\Entity\Vendor; 使用 Doctrine\ORM\Event\

回答 2 投票 0

如何创建一个事件监听器来同时监听点击和输入键?

你如何创建一个事件监听器来监听点击和输入键的同时用很少的代码?有没有一个简短的方法?在一个完美的世界里,我会想象像

回答 1 投票 0

Javascript Click 事件侦听器未触发但已添加到按钮

希望有人能在这里帮助我,因为我不知道发生了什么 我正在尝试向这个 Shopify 添加到购物车按钮添加一个事件监听器,在 Firefox 中我可以看到“点击”事件正在发生

回答 1 投票 0

Tekton EventListener with securityContext

有没有办法创建带有 securityContext 的 Tekton EventListener?我似乎无法在文档中找到任何关于此的内容,并且由于

回答 0 投票 0

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