javascript - Polymer - 将事件绑定(bind)到动态创建的元素

标签 javascript events dynamic binding polymer

我正在尝试创建一个 polymer 组件,它将进行 ajax 调用并根据响应填充列表,我还想向每个列表元素添加一个点击/点击事件,以便在我点击时执行某些操作在列表项上。

我这样创建列表:

  populateList: function(items) {
    if (items.length == 0) {
      return;
    }
    var menu = this.$$('.mp-Autocomplete-dropdown-menu');
    var node = null;

    for (var k = 0; k < items.length; k++) {
      node = document.createElement('li');
      node.setAttribute('class', 'style-scope mp-autocomplete');
      node.setAttribute('tabindex', '0');

      node.innerHTML = items[k];
      menu.appendChild(node);
      this.listen(this.$$('li'), 'click', '_itemTapHandler');

      .addEventListener('')
    }
  },

但是“听”不起作用,我在 polymer 文档中找不到任何其他可能对我有帮助的东西——如果不走出组件并在完整文档上直接调用 js,那可不好。 ..... 谁能帮帮我?

谢谢, 冷

最佳答案

this.$$('li')总是返回第一个 <li>元素中的元素,这可能不是你想要的。

改用:

this.listen(node, 'click', '_itemTapHandler');

如果你想稍后删除它

var node = ... /* get reference to node */

this.unlisten(node, 'click', '_itemTapHandler');

另见 https://www.polymer-project.org/1.0/docs/devguide/events.html#imperative-listeners

关于javascript - Polymer - 将事件绑定(bind)到动态创建的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36748550/

相关文章:

events - 我如何以 Angular 2 立即检测窗口大小调整?

java - Android 中使用 SharedPreferences 的动态列表

mysql - Laravel 使用外键在数据库中保存动态输入

javascript - 在卸载/离开页面之前检查给定表单中的更改

javascript - jQuery : How can showint text and hide then showing another?

javascript - 在javascript中传递对象

javascript - Twitter API - 调用 'Latest Tweet'

javascript - 通过 sdk/system/events 测试 http-on-modify-request 观察者?

javascript - 动态 iframe 高度取决于隐藏/显示

javascript - AngularJS:在键入时将输入文本转换为标题大小写