【发布时间】:2017-10-13 06:37:35
【问题描述】:
我想在 JavaScript 中为动态创建的元素添加侦听器,但它似乎不起作用。它不会引发任何错误,所以我不知道我必须从什么开始。你有什么想法吗?
{
const API_KEY = "9829fe5eab6c963bbe4850df2d7de4aa";
const container = document.getElementById("container");
const flippers = document.getElementsByClassName("header__flipper");
const cityTemplate = () => {
const template = `<section class="weather">
<button class="header__flipper"><span aria-hidden="true">→</span></button>
<header class="header">
<h1 class="header__heading">dfgdfgd
</h1>
</header>
</section>`;
return template;
};
const addListeners = (collection, ev, fn) => {
for (let i = 0; i < collection.length; i++) {
collection[i].addEventListener(ev, fn, false);
}
}
const req = (id, key) => {
const url = `https://api.openweathermap.org/data/2.5/forecast?id=${id}&APPID=${key}`;
fetch(url).then((res) => {
res.json().then((data) => {
container.innerHTML += cityTemplate(data);
});
})
}
req("6695624", API_KEY);
req("6695624", API_KEY);
req("6695624", API_KEY);
addListeners(flippers, "click", () => {
alert("test");
})
}
<div id="container"></div>
【问题讨论】:
-
你为什么使用反引号而不是单引号?
-
@miqezjo - 错误表明您的 API_KEY 无效。 Swellar - 反引号用于创建模板文字 - 非常方便!
-
我想用模板字符串创建元素
-
@BrettDeWoody 不知道,谢谢提供信息
-
反引号在javascript的NODE中使用,如果你想声明一个字符串,你必须把它放在单引号或双引号中。
标签: javascript html