将事件处理程序(带参数)添加到使用document.createElement创建的元素

Fik*_*kre 1 javascript

在下面的函数中,我正在尝试创建一个动态元素(textArea).我正在尝试使用textArea.onclick = resize将函数(resize)绑定到文本区域; 哪个工作正常.

我想要做的是将参数传递给resize函数(生成的id或者,如果可能的话,还是textArea本身)

    function addElement(elm, event) {
        var textArea = document.createElement('textarea');
        var id = Math.random();
        textArea.setAttribute('id', id)
        textArea.setAttribute('cols', 1);
        textArea.setAttribute('rows', 3);
        textArea.onclick = resize;
        elm.appendChild(textArea);
    }
Run Code Online (Sandbox Code Playgroud)

如果我说textArea.onclick = resize(id); 那就是调用函数.

我如何绑定函数,并将参数传递给它?

Moo*_*Goo 6

使用闭包:

textArea.onclick = function() { resize(id); };
Run Code Online (Sandbox Code Playgroud)

或者使用元素id属性:

textArea.onclick = function() { resize(this.id); };
Run Code Online (Sandbox Code Playgroud)