javascript - 如何将函数/事件监听器添加到使用 ES6 模板文字创建的元素?

标签 javascript ecmascript-6

我试过这个:

const el = `<button class="create-panorama" onclick="${test()}">Create panorama</button>`

function test () {
  console.log('esesesee')
}

element.insertAdjacentHTML('beforeend', el)
// element = <div id="element"></div>

但是,当我点击按钮时没有任何反应。

button 添加点击 Action 的最佳方式是什么?

最佳答案

  onclick="${test()}"

这基本上是尝试执行:

 ${test()}

这显然行不通,因为您不能在字符串外部使用模板文字。因此就做

onclick="test()"

What's the best way to add a click action to button?

内联事件监听器由于一些原因是不好的,总是使用 .addEventListener !

  const el = document.createElement("button");
  el.textContent = "Click me!";
  el.className = "sth";
  el.addEventListener("click", test);

  element.appendChild(el);

关于javascript - 如何将函数/事件监听器添加到使用 ES6 模板文字创建的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50018368/

相关文章:

javascript - Vue中如何在函数之间共享变量

javascript - 如何使用 fabric.js 将滚动条添加到(可能是无限的) Canvas

javascript - ES6解构对象赋值函数参数默认值

javascript - 将两个对象数组与其值进行比较,单元测试

javascript - react , "this",cloneElement 和 es6

reactjs - 当状态是对象数组时更新 React 状态

javascript - 使用正则表达式更改img src

javascript - 为什么两个变量都是 JQuery 对象,而 .css 属性却对其中一个不起作用?

javascript - node.js- node js 可以一次打开多个 chrome 配置文件吗?

javascript - 删除事件监听器不起作用