如何使用柯里化函数删除事件监听器

2024-05-04

我很难删除事件侦听器类型柯里化函数。

// I register first, at some time I want to remove using freezeHighlight but it doesn't working (without currying function it's working like a charm)
const privateMethods = {
  highlighted (index) {
    return function (event) {
      event.target.setAttribute('filter', 'url(#glow)')

      // need param index later
    }
  }
}

register (node, index) {
      node.addEventListener('mouseover', privateMethods.highlighted(index))
  }

freezeHighlight (node) {
        node.removeEventListener('mouseover', privateMethods.highlighted)
  }

是否可以删除事件侦听器类型柯里化函数,或者我应该继续使用解决方法?


您需要记住您创建的处理程序,以便以后可以将其删除。

const handlers = {};

const privateMethods = {
  highlighted (index) {
    // return the saved handler if we've been called before
    // or create a new handler, save it, and return it.
    return handlers[index] || (handlers[index] = function (event) {
      event.target.setAttribute('filter', 'url(#glow)')

      // need param index later
    });
  }
}

register (node, index) {
      // add the handler
      node.addEventListener('mouseover', privateMethods.highlighted(index))
}

freezeHighlight (node, index) {
      // will remove the handler
        node.removeEventListener('mouseover', privateMethods.highlighted(index))
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用柯里化函数删除事件监听器 的相关文章

随机推荐

  • 使用PHP获取http url参数而不自动解码

    我有一个像这样的网址 test php x hello world y 00h 00e 00l 00l 00o 当我将它写入文件时 file put contents x txt GET x gt hello world file put
  • 为什么我要使用服务器端 JavaScript?

    我很困惑 我经常阅读有关服务器端 JS 的讨论 为什么我要使用它 看起来它的执行速度比几乎任何其他语言都要慢 而且它还缺乏更复杂的语言所具有的许多约定 是否可以将整个对象从客户端传递到服务器 操作它们并将它们返回 只是努力理解它的概念 是的
  • 将 Highcharts 导出为 PDF(使用 javascript 和本地服务器 - 无互联网连接)

    我在我的应用程序中使用 Highcharts 没有任何互联网连接 我的 html 页面上有多个图表 我想生成一个包含该页面中所有图表的 PDF 报告 我怎样才能做到这一点而不将数据发送到互联网上的任何服务器 我将感谢您提供的任何帮助或任何示
  • 无法安装 pygame [重复]

    这个问题在这里已经有答案了 所以我对 python 和 或 pip 有一些问题 Python 当要求在 CMD 中下载 pygame 时py m pip install U pygame user 给我这个错误 WARNING No Set
  • Webhook 不执行订阅验证

    我们正在使用 Microsoft Graph 创建 Webhook 订阅 但是 返回以下 JSON 我们可以看到没有相应的 HTTP 请求发送到我们的验证公共 Web 服务器 error code InvalidRequest messag
  • TextView、iOS 和 OSX 中的彩虹文本

    我正在尝试向我的应用程序添加一些不同的文本颜色以融合到图像中 我收到了很多用户想要彩虹文本颜色并重复的输入 例如这个词 stackoverflow看起来像这样 s red t orange a yellow c green k blue o
  • 如何使用j2me(midp2.0)从收件箱读取短信?

    我想从 j2me 应用程序访问收件箱消息文本 我不知道如何访问收件箱 使用 j2me 无法实现这一点 我已经在诺基亚论坛讨论过 看
  • 双边移动平均线?

    如何获得两侧的 移动平均值 该函数对向量右侧和左侧的 n 个数字进行平均 并根据它们与中心值的距离赋予它们权重 我尝试使用 TTR 但它的移动平均线仅从左到右工作 并将最左边的值设置为 NA 所以我不能使用该平滑向量作为 smooth sp
  • authenticationEntryPoint 不适用于提交凭据的 Permit() http 方法

    Override protected void configure HttpSecurity httpSecurity throws Exception formatter off httpSecurity csrf disable aut
  • 使用动态链接器包装 glibc 函数

    我正在尝试包装 GLIBCfstat通过将我的库注入可执行文件来实现函数 可以是任何其他 这只是概念证明 我通过将我的库放置在可执行文件的位置来做到这一点RPATH用名字指着libc so 6 我的库的源代码如下 define GNU SO
  • 从命令行获取设备的 Android SDK 版本

    我计划构建一个自动化系统 用于将 Android 版本部署到各种设备 以便使多平台开发更加轻松 有没有办法通过android shell或adb获取连接设备的sdk版本 将有一台计算机连接多个测试设备 我计划编写一个脚本 该脚本将从构建服务
  • JUnit、测试和线程

    当我连续运行多个 JUnit 测试时 JUnit 是否为每次执行创建一个新线程 或者所有内容都包装在一个线程中 Thanks 这一切都在一个线程上 您没有说明如何调用测试 但例如 运行 TestSuite 将按顺序运行套件中的所有测试 如果
  • Angular Material 10 日期选择器(mat-datepicker)与其他输入字段不对齐

    使用 Angular 10 和 Angular Material 10 在表单中使用日期选择器与其他输入表单字段不对齐 如下图所示 字段未对齐 https i stack imgur com D4Hc4 png component html
  • 如何使用 emacs prettify-symbols-mode?

    我有 emacs 版本 25 0 我启用prettify symbols mode 然后输入 lambda t 但它并不能美化 我该如何使用这个模式 还有哪些符号可用以及如何配置它 任何参考都值得赞赏 Edit 什么也没发生在scratch
  • 强制 Makefile 中依赖项的顺序

    我有一个 Makefile 我想并行使用它来编译一组单独的程序 它看起来像这样 compileall program1 program2 program3 echo Compilation completed program1 progra
  • MongoDB BasicDBObject 与 Java 中的文档

    我正在使用 MongoDB v3 2 0 和 Mongo Java Driver 3 0 4 版本 我正在使用BasicDBObject 已弃用 而不是使用Document在 java 中 因为我需要在独立的 java 项目中进行许多更改才
  • 无参数行为的 C 函数

    有人可以向我解释为什么下面的代码编译时没有警告或错误吗 我希望编译器警告我该函数no args不期望任何争论 但代码编译并运行功能no args递归地 static void has args int a int b int c print
  • DeprecationWarning:移动应用程序时的功能(删除标题栏)-PySide6

    当我移动应用程序时 我收到此警告 C Qt Login Test main py 48 DeprecationWarning Function globalPos const is marked as deprecated please c
  • 在 C# 中是否存在用于将 List 元素向左或向右移动指定量的代码?

    在 C 中是否存在用于将 List 元素向左或向右移动指定量的代码 这是很棘手的代码 需要一些时间来编写和测试特殊情况 我宁愿 重用某些东西 如果存在 Thanks 像这样的左移 public static void ShiftLeft
  • 如何使用柯里化函数删除事件监听器

    我很难删除事件侦听器类型柯里化函数 I register first at some time I want to remove using freezeHighlight but it doesn t working without cu