我的所有eventListeners工作都有问题......我需要:
两者都调用一个函数,将一个元素作为参数。在下面的代码中, keydown 无效......任何人都可以看到问题吗? 谢谢!
HTML:
<div id="motscles">
<label class="motcle">pouet</label>
<label class="motcle">youpi</label>
<label class="motcle">...</label>
<input class="inputMotsCles" id="motsclesInput" required="true" type="text">
</div>
JS:
var motsclesList = document.getElementById('motscles');
var motsclesInput = document.getElementById('motsclesInput');
var motscle = document.querySelectorAll('.motcle');
// on keydown
motsclesInput.addEventListener("keydown", function (e) {
if (e.which == 8) { // backspace
supprimeMotCle(motsclesInput.previousElementSibling);
}
});
// click a "
for (var i = 0; i < motscle.length; i++) {
motscle[i].addEventListener('click', supprimeMotCle(motscle[i]));
}
// the function removes the element given in parameter
function supprimeMotCle(blocMotCle) {
return function () {
blocMotCle.remove();
};
}
答案 0 :(得分:0)
function supprimeMotCle(blocMotCle) {
return function () {
blocMotCle.remove();
};
}
...正在返回一个函数,这绝对不是你想要获得的。而是删除return语句,因为你不需要它。
这将有效:
// the function removes the element given in parameter
function supprimeMotCle(blocMotCle) {
blocMotCle.remove();
}