Javascript 将onclick事件添加到div

Javascript 将onclick事件添加到div,javascript,css,html,onclick,Javascript,Css,Html,Onclick,我不知道这是允许的还是可能的。是否可以使用onclick事件创建div元素,以便在单击div区域中的任何位置时,该事件都将运行 乙二醇 JAVASCRIPT: var divTag = document.createElement("div"); divTag.id="new-ID"; var onClickCommand = "printWorking()" //printworking is another method that simply print "I'm working"

我不知道这是允许的还是可能的。是否可以使用onclick事件创建div元素,以便在单击div区域中的任何位置时,该事件都将运行

乙二醇 JAVASCRIPT:

var divTag = document.createElement("div");
divTag.id="new-ID"; 
var onClickCommand = "printWorking()"   //printworking is another method that simply print "I'm working" to the console
divTag.onclick = onClickCommand;
console.log("onclick command added");
console.log(divTag.onclick);
parentDiv.appendChild(divTag); //This simply adds the div tag to the page.
生成的HTML:

 <!--<div id="new-ID">-->

 whatever content I decide to add to the divTag.innerHTML
以上工作完美无瑕

下面所有内容都不会也不会将onclick传递给div

divTag.onclick=printWorking;

divTag.onclick="printWorking";

divTag.onclick="printWorking()";

还尝试了多种其他变体。

按如下方式分配onclick:

divTag.onclick = printWorking;
onclick属性在分配时不会接受字符串。相反,它采用函数引用(在本例中为
printWorking
)。
在HTML中分配onclick属性时可以是字符串,例如
,但通常不建议这样做

是否可以将onclick添加到div中,并在单击div的任何区域时使其发生

是的……尽管这样做要小心。确保有某种机制允许键盘访问

如果是,那么为什么onclick方法没有通过我的div呢

您正在为需要函数的位置分配字符串

divTag.onclick = printWorking;
不过,有更好的方法来分配事件处理程序,尽管旧版本的Internet Explorer差异很大,您应该使用库对其进行抽象。有很多(每个主要的库)都有事件处理功能


这就是说,现在是2019年,Internet Explorer的旧版本在实践中已不复存在,因此您可以直接访问一切正常。不能使用divtag.onclick,因为“onclick”属性不存在。您需要首先使用.setAttribute()创建此属性。看看这个
. 在开始给出“-”之前,您应该先阅读文档

手动设置onclick似乎不起作用。我需要使用.setAttriubteinstead@feeela. 我确实找过了。有许多例子似乎不相关,或者我自己也试过,但没有效果。其原因似乎与我的上述评论有关。如果你在答案中加上“setAttribute”,我会加上它。对于有答案的问题,答案是+1。括号不是必需的吗?如果有括号,那么它将是一个函数调用,返回值将被赋值,而不是函数本身。这现在非常有意义。我在代码中的其他地方做过多次,但不知道发生了什么。为什么不建议这样做?
divTag.onclick = printWorking;