代码之家  ›  专栏  ›  技术社区  ›  Lcukerd

如何一次为特定标记中的所有元素编写事件侦听器[[副本]

  •  0
  • Lcukerd  · 技术社区  · 6 年前

    我想编写一个事件侦听器函数,当我的 <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 onchange 对于所有这些元素(如来自css)。

    我之所以要这样做是因为我在动态添加元素,并希望删除冗余代码。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Wolgan Ens    6 年前

    请看第二个答案: trigger an event when contenteditable is changed 您可以对ul中的所有contenteditable元素执行此操作

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

    http://api.jquery.com/on/