如何使用的addEventListener(How to use addEventListener)

2019-07-04 18:37发布

我正在创建div元素每次按下按钮时的脚本。 我原本的直列调用的函数onclick属性,但JSLint的不喜欢,所以我搬出来,而是试图用addEventListener("click",function());

我从未使用过addEventListener()之前,所以我什至不知道我是正确使用它。

问题是,它会创建一个div在页面加载时,并按下按钮时什么都不会做。

先感谢您。

这里是我有:

<body>
<form>
    <textarea id="a"></textarea>    
    <br>
    <input value="button" type="button">
</form>
<div id="content">
</div>
<script>
    /*jslint browser:true */
    function createEntry(text) {
        "use strict";

        var div = document.createElement("div");
        div.setAttribute("class", "test");
        document.getElementById("content").appendChild(div);
    }
    var input = document.getElementsByTagName("input")[0];
    input.addEventListener("click", createEntry(document.getElementById('a').value));
</script>

Answer 1:

更改事件侦听器这样的

input.addEventListener("click", function(){
    createEntry(document.getElementById('a').value);
});

因为它的立场,你传递的结果createEntry作为事件侦听器,而不是函数本身

点击此处了解详情:

https://developer.mozilla.org/en/docs/DOM/element.addEventListener



Answer 2:

改变这一行

input.addEventListener("click", createEntry(document.getElementById('a').value));

input.addEventListener("click", function(){
createEntry(document.getElementById('a').value);
});


Answer 3:

尝试使用JavaScript库如jQuery事件处理和DOM操作,将浏览器的安全和统一。

您可以使用事件处理jQuery中像下面这样:

$(<element_selector>).on("click", function (event) {
     // your code here...
});


文章来源: How to use addEventListener