要求Javascript关注多个元素事件的模式

Pattern for asking Javascript to pay attention to multiple element events?

本文关键字:元素 事件 模式 Javascript 要求      更新时间:2023-09-26

我正在编写一个Javascript库来监视用户如何与表单字段交互。它必须监视给定元素的多个事件,所以我不能使用onblah处理程序。

我希望HTML作者决定监控哪些字段。我想我应该提供这样的东西:

<script src="formWatch.js"></script>
<form ...>
    <textarea name="blah" onload="watch(this)"/>
    <input type="submit" value="Submit" />
</form>

那么watch()将在元素上注册各种事件处理程序。但似乎onload只对加载资源的元素开火?

允许HTML作者决定Javascript库将关注哪些元素的好模式是什么?

你有很多选择。也许可以尝试使用数据标签:

<textarea name="blah" data-monitored="true">

,在JS中,你使用如下方法收集所有这些元素:

var nodeList = document.querySelectorAll("[data-monitored='true']");

在第一次加载时使用onfocus事件处理程序并触发focus事件是什么?然后,您将在此处理程序中管理多个事件,就像使用watch函数一样。