更改onClick功能以定位编辑按钮

时间:2013-01-15 14:14:51

标签: javascript

我有以下脚本

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函数在按下Edit按钮时起作用(对于textarea下面的每个编辑按钮)。在这种状态下,脚本会在我点击Addtext按钮时提醒我。

以下是html。附:如果你能提供帮助,我需要在纯JavaScript中使用它。感谢

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


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

1 个答案:

答案 0 :(得分:2)

而不是:

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

你需要这样做:

editbutton.onclick = makeAreaEditable;
除非你想执行它,否则函数的名称不带括号

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

侧面说明: 标准的方法是在附加元素

之前添加onclick属性