【问题标题】:Javascript events (click)Javascript 事件(点击)
【发布时间】:2015-08-11 23:49:15
【问题描述】:

我的网站基本上使用 javascript。服务器在 JSON 数组中返回 html,然后 javascript 会将其添加到 DOM。 我的问题是事件。 我应该将点击事件添加到正文/窗口,然后检查目标是否匹配或将事件添加到每个元素? (大多数事件将在提要中,其中元素具有相同的类):

    <div id="feed_1">
           <div class="like_button" data-click="something here">Like</div>
    </div>
<div id="feed_2">
           <div class="like_button" data-click="something here">Like</div>
    </div>

注意:我没有使用 jQuery

【问题讨论】:

  • 那些“i”属性是否意味着ID?
  • 抱歉:是的,“i”是指 ID。 => 更新

标签: javascript events dom element


【解决方案1】:

如果您要问是否应该为 HTML 文档中的每个元素添加一个偶数,或者是否应该有一个事件侦听器来指定单击时的目标,那么更好的方法肯定是后者。

对于处理大量元素的事件,我们通过使用事件委托来强制执行 DRY 原则。这涉及使用 event 参数声明事件侦听器,然后将事件触发到事件目标上。示例:

var el = document.getElementByID('container');
el.addEventListener('click', function(e) {
    doSomething(e.target); // do something to the target element
});

这里的想法是,您的容器元素包含您希望“可点击”的所有内容,但是,当您点击容器中的某个元素时,该事件只会针对该点击的元素触发。这样我们就不必为每个单独的元素定义一个事件监听器。

希望这会有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
  • 2017-04-23
  • 2014-09-10
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多