在javascript中创建具有点击事件的动态按钮

如何使用javascript创建具有点击事件的动态按钮?

我试过这个,但是当我点击添加按钮时,会出现一个提示信息!这不是我想要的 – 我想要能够点击动态创建的按钮。

<script language="javascript">
    function add(type) {
        //Create an input type dynamically.   
        var element = document.createElement("input");
        //Assign different attributes to the element. 
        element.setAttribute("type", type);
        element.setAttribute("value", type);
        element.setAttribute("name", type);
        element.setAttribute("onclick", alert("nyclassiccartours"));

        var foo = document.getElementById("new york");
        //Append the element in page (in span).  
        foo.appendChild(element);

    }
</script>
哇你很近评论中的编辑:

function add(type) {
  //Create an input type dynamically.   
  var element = document.createElement("input");
  //Assign different attributes to the element. 
  element.type = type;
  element.value = type; // Really? You want the default value to be the type string?
  element.name = type; // And the name too?
  element.onclick = function() { // Note this is a function
    alert("blabla");
  };

  var foo = document.getElementById("fooBar");
  //Append the element in page (in span).  
  foo.appendChild(element);
}
document.getElementById("btnAdd").onclick = function() {
  add("text");
};
<input type="button" id="btnAdd" value="Add Text Field">
<p id="fooBar">Fields:</p>

现在,您可以考虑使用addEventListener(大多数浏览器)或attachEvent(除了最近的Microsoft浏览器之外),而不是设置元素的onclick属性(称为“DOM0事件处理”) – 您必须检测和处理这两种情况 – 称为“DOM2事件处理”的形式具有更大的灵活性。但是如果您不需要多个处理程序,那么旧的DOM0方式可以正常工作。

您可以考虑使用像jQueryPrototypeYUIClosureany of several others这样的好的JavaScript库。它们可以平滑浏览器的差异,如addEventListener / attachEvent事件,提供有用的实用程序功能以及其他各种功能。显然没有什么图书馆可以做,你不能没有一个,因为图书馆只是JavaScript代码。但是,当您使用具有广泛用户群的良好图书馆时,您可以获得其他人在处理这些浏览器差异等方面所做的大量工作的好处。

http://stackoverflow.com/questions/7707074/creating-dynamic-button-with-click-event-in-javascript

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在javascript中创建具有点击事件的动态按钮