javascript - 如何一次为特定标签中的所有元素编写事件监听器?

标签 javascript html

我想编写一个事件监听器函数,当我的 <ul> 中的任何元素出现时需要调用该函数。标签被编辑。
例如对于给定 ul 中的元素

<ul class="container">
  <h4 contenteditable="true">hi</h4>
  <h5 contenteditable="true">hi</h5>
  <label>
    <input id="indeterminate-checkbox" type="checkbox" />
    <span contenteditable="true">Indeterminate Style</span>
  </label>
  <p contenteditable="true">hi</p>
  <blockquote contenteditable="true">sup</blockquote>
</ul>

我想使用element.addEventListener()仅一次(我不能只为 ul 声明 contenteditable 并添加监听器,因为这会产生不需要的 UI 更改)。另外,如果可能的话我想声明 onchange一次获取所有这些元素(就像来自 css)。

我想这样做是因为我正在动态添加元素并希望删除冗余代码。

最佳答案

看看这里的第二个答案:trigger an event when contenteditable is changed 您可以对 ul 内的所有可内容编辑元素执行此操作

$( "ul.container" ).on( "focus", "[contenteditable=true]", function() {
  //here you save the content innerhtml/text, etc of the element
});

然后通过“模糊”事件,当您离开一个元素时,您可以测试旧内容是否相同,然后执行一些操作。 有关“on”jquery 函数的引用:http://api.jquery.com/on/

关于javascript - 如何一次为特定标签中的所有元素编写事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52525014/

相关文章:

HTML 电子邮件背景图片

javascript - Html 5 的 'jQuery' 是什么?

javascript - 将 JS 页面添加到 SilverStripe

javascript - Vuejs Hello World 不会渲染

javascript - 如何通过单击按钮添加html输入

javascript - 使用 JavaScript/jQuery 显示在页面之间持续存在的 "Loading..."弹出窗口

javascript - JavaScript 中 forEach 和 for 循环的区别

javascript - 如何将unicode字符放入javascript

php - 响应速度不适用于 slider

javascript - Bootstrap 在计算机浏览器上工作,但在移动浏览器上不起作用