2

我有以下脚本

var counter = 0;
function appendText(){

        var text = document.getElementById('usertext').value;

            if ( document.getElementById('usertext').value ){

                var div = document.createElement('div');
                div.className = 'divex';

                var li = document.createElement('li');
                li.setAttribute('id', 'list');  
                div.appendChild(li);

                var texty = document.createTextNode(text);
                var bigdiv = document.getElementById('addedText');

                var editbutton = document.createElement('BUTTON');
                editbutton.setAttribute('id', 'button_click');
                var buttontext = document.createTextNode('Edit');
                editbutton.appendChild(buttontext); 

                bigdiv.appendChild(li).appendChild(texty);
                bigdiv.appendChild(li).appendChild(editbutton);

                document.getElementById('button_click').setAttribute('onClick', makeAreaEditable());

                document.getElementById('usertext').value = "";
                counter++;
        }        
};                                                          

var makeAreaEditable = function(){    

    alert('Hello world!');
};

我希望 makeAreaeditable 函数在按下编辑按钮时工作(对于附加在文本区域下的每个编辑按钮)。在这种状态下,脚本会在我点击 Addtext 按钮时提醒我。

以下是html。PS我需要这个纯javascript,如果你能帮忙的话。谢谢

    <textarea id="usertext"></textarea>
    <button onClick="appendText()">Add text </button>


    <div id="addedText" style="float:left">
    </div>
4

1 回答 1

2

代替:

document.getElementById('button_click').setAttribute('onClick', makeAreaEditable());

你需要这样做:

editbutton.onclick = makeAreaEditable;

函数的名称不带括号,除非你想执行它

document.getElementById('button_click') 您可以使用editbutton已经创建的变量,而不是使用从 DOM 获取元素。此对象是您要查找的 DOM 元素

旁注:执行此操作的标准方法是onclick在附加元素之前添加属性

于 2013-01-15T14:21:12.117 回答