我创建了一个label
元素。我需要将onclick
事件添加到...
function a(me) {
var d=document.createElement("label");
d.id=me.id;
d.onClick="a(10)";
d.innerHTML="welcome";
document.body.appendChild(d);
}
HTML:
<label id="1" onclick="a(this)">aa</label>
<label id="2" onclick="a(this)">bb</label>
<label id="3" onclick="a(this)">aa</label>
实际上当我点击html中的三个标签中的任何一个时会发生什么。创建另一个标签并显示欢迎。现在,当我点击新创建的标签“欢迎”它没有显示任何东西......这是添加到新创建的标签的onclick事件不起作用.......任何建议...... ...........
答案 0 :(得分:18)
您需要设置d.onclick=function(){a(1);};
,请注意此处的情况很重要(不是“onClick”)。
<强> [编辑] 强>
根据您的评论和更新的问题,我创建了一个jsFiddle to demonstrate,您可以将代码转换为可行的代码。
答案 1 :(得分:6)
d.setAttribute('onclick', 'alert(\'hello\');');
答案 2 :(得分:0)
为了创建HTML标记的属性,有时我们必须添加:
yourTag.src
yourTag.src = 'http://lolxd.com/404.png'
但是有一些特殊的属性,它们有不同的编辑方式:
yourTag.classList
yourTag.className
还有onclick
属性,我们可以这样使用它:
// The first way
obj.onclick = function () { alert('lalala') }
// With the Event Listener
obj.addEventListener('click', function () { alert('lalala') }, false)
// Or, a text-render way
obj.setAttribute('onclick', 'alert(`lalala`)')
我建议您使用Event Listener方式,但请尝试全部:D