添加onclick事件动态添加按钮?

时间:2011-08-05 12:28:16

标签: javascript html forms

我在html中动态添加一个按钮,如下所示: 点击该按钮我想调用Javascript函数:

var but = document.createElement("button");

but.value="delete row";

but.setAttribute("onclick","callJavascriptFunction()");
//this is not working

but.onclick="callJavascriptFunction()"
//this is also not working

document.getElementById("but").onclick="callJavascriptFunction()"
//this is also not working

but.id="but"+inc;

有什么方法可以解决这个问题吗?Plz帮助我。, 提前谢谢

8 个答案:

答案 0 :(得分:20)

试试这个:

but.onclick = callJavascriptFunction;

或通过用另一个元素包装它来创建按钮并使用innerHTML:

var span = document.createElement('span');
span.innerHTML = '<button id="but' + inc +'" onclick="callJavascriptFunction()" />';

答案 1 :(得分:11)

从无效的表达式中删除()将获得所需的结果。

but.setAttribute("onclick",callJavascriptFunction);
but.onclick= callJavascriptFunction;
document.getElementById("but").onclick=callJavascriptFunction;

答案 2 :(得分:4)

尝试
but.addEventListener('click', yourFunction) 请注意函数名后面的括号()缺席。这是因为您正在分配该功能,而不是调用它。

答案 3 :(得分:3)

我遇到了类似的问题,但这些修复都没有奏效。问题是我的按钮还没有出现在页面上。对此的修复最终是从这个:

//Bad code.
var btn = document.createElement('button');
btn.onClick = function() {  console.log("hey");  }

到此:

//Working Code.  I don't like it, but it works. 
var btn = document.createElement('button');
var wrapper = document.createElement('div');
wrapper.appendChild(btn);

document.body.appendChild(wrapper);
var buttons = wrapper.getElementsByTagName("BUTTON");
buttons[0].onclick = function(){  console.log("hey");  }

我完全不知道为什么会这样。将按钮添加到页面并以任何其他方式引用它都不起作用。

答案 4 :(得分:3)

这段代码对我有用,看起来更简单。必须使用特定参数调用函数。

var btn = document.createElement("BUTTON");  //<button> element
var t = document.createTextNode("MyButton"); // Create a text node
btn.appendChild(t);   

btn.onclick = function(){myFunction(myparameter)};  
document.getElementById("myView").appendChild(btn);//to show on myView

答案 5 :(得分:3)

but.onclick = function() { yourjavascriptfunction();};

but.onclick = function() { functionwithparam(param);};

答案 6 :(得分:2)

试试这个:

var inputTag = document.createElement("div");              
inputTag.innerHTML = "<input type = 'button' value = 'oooh' onClick = 'your_function_name()'>";    
document.body.appendChild(inputTag);

这会在DIV内部创建一个完美的按钮!

答案 7 :(得分:1)

but.onclick = callJavascriptFunction;

没有双引号没有括号。