gpt4 book ai didi

javascript - 找不到我的 "addEventListener"函数的解决方案

转载 作者:行者123 更新时间:2023-11-30 16:58:36 25 4
gpt4 key购买 nike

我在尝试使用 addEventListener 时遇到了问题。我确实尝试在网上找到解决方案,但我认为我的知识有限,无法选择合适的答案。

我尝试的是在这个例子中按下一个键时调用函数“addFile()”enter(13) 不幸的是没有任何反应。我可以通过稍微编辑 addFileOnKeyEvent(event) 将 onkeypress 属性添加到输入 “添加文件”,但我试图了解我的 eventListener 有什么问题。

我希望你能听懂我的解释,因为这是我的第一个问题。 :)

function addFile() {
var x = document.getElementById("add-file").value;
x = x + ".xml";
var lbl = document.createElement("label");
var node = document.createTextNode(x);
lbl.appendChild(node);

var element = document.getElementById("appendable");
element.appendChild(lbl);
}

function addFileOnKeyEvent(event) {
var evt = event.keyCode;
var textField = document.getElementById("add-file").addEventListener("keypress", function() {
if (evt == 13) {
addFile();
}
});
}
<label>Dateien</label>
<input id="add-file" type="text" onclick="this.select();">
<button type="submit" onclick="addFile()">Hinzufügen</button>
<div class="data-display">
<span id="appendable"></span>
</div>

最佳答案

起初,addFileOnKeyEvent() 从未在任何地方调用过。所以当你尝试添加文件时你必须调用它。或者您必须默认将事件绑定(bind)到文本字段。

也不需要将事件对象传递给 addFileOnKeyEvent()。 事件必须在 addEventListener 回调函数中捕获。

function addFile() {
var x = document.getElementById("add-file").value;
x = x + ".xml";
var lbl = document.createElement("label");
var node = document.createTextNode(x);
lbl.appendChild(node);

var element = document.getElementById("appendable");
element.appendChild(lbl);
}

function addFileOnKeyEvent() {
document.getElementById("add-file").addEventListener("keypress", function(event) {
var evt = event.keyCode;
if (evt == 13) {
addFile();
}
});
}
// call the function here
addFileOnKeyEvent();

// else just put the event handler part alone. The function is unnecessary here.
<label>Dateien</label>
<input id="add-file" type="text" onclick="this.select();">
<button type="submit" onclick="addFile()">Hinzufügen</button>
<div class="data-display">
<span id="appendable"></span>
</div>

关于javascript - 找不到我的 "addEventListener"函数的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29258954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com