如何使用javascript中的Onclick属性动态创建对象

时间:2016-01-31 11:59:24

标签: javascript html dom

我有以下代码

  var eventbar = document.createElement("Div");
  eventbar.id = "eventa";
  eventbar.className= "event";
  eventbar.onclick = 'createpopupdata(this)';
  eventbar.innerHTML = "Click here";
  document.getElementById("body").appendChild(eventbar); 

然而,当它在HTML中创建对象时,我的检查器在创建的HTML Div中没有​​显示onClick属性。想知道我出错了,因为我已尝试多种方式发布在这里。 (显然没有引号直接运行函数。)

编辑:如果我必须做一些特别的事情,比如为对象创建一个监听器,或者是否有一个简单的解决方案,我就会动摇。

3 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:



var eventbar = document.createElement("Div");
eventbar.id = "eventa";
eventbar.className = "event";
eventbar.onclick = createpopupdata.bind(null,eventbar);
eventbar.innerHTML = "Click here";
document.getElementById("body").appendChild(eventbar);

function createpopupdata(el){
  alert(el.id)
}

div{
  width:50px;
  height:50px;
  background:#eee;
}

<div id="body"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您的// Quit when all windows are closed. app.on('window-all-closed', function () { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', function () { // On OS X it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (mainWindow === null) { createWindow(); } }); (不是onclick它的区分大小写!)应该是对函数(onClick)的引用,而不是对它的调用({{1 }})。 首先将它添加到DOM,然后是onclick监听器。

&#13;
&#13;
createpopupdata
&#13;
&#13;
&#13;

您还必须拥有'createpopupdata(this)'才能使您的版本正常运行。我修改它以适用于通常的情况。

答案 2 :(得分:0)

这应该有效:

eventbar.addEventListener('click', function (){
    createpopupdate(this);
}, false);