9

ボタンが押されるたびに 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>

4

3 に答える 3

12

このようにイベントリスナーを変更します

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

createEntry現状では、関数自体ではなく、イベントリスナーとしての結果を渡しています。

詳細はこちら:

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

于 2012-12-07T21:14:58.447 に答える
7

この行を変更します

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

の中へ

input.addEventListener("click", function(){
createEntry(document.getElementById('a').value);
});
于 2012-12-07T21:15:17.990 に答える
4

jQueryのようなJavaScriptライブラリを使用して、イベント処理とDOM操作を行い、ブラウザの安全性と統一性を確保してください。

次のように、jQueryでイベントハンドラーを使用できます。

$(<element_selector>).on("click", function (event) {
     // your code here...
});
于 2012-12-07T21:18:53.930 に答える