我想通过构造函数通过JavaScript创建一个Button。一切正常,但onclick事件在加载页面后立即开始,而不是在单击按钮后开始。
function Button(text) {
this.button = document.createElement('button');
this.button.id = text;
this.button.innerHTML = text;
this.button.style.width = 100;
this.button.style.height = 30;
document.body.appendChild(this.button);
};
b1 = new Button('button1');
b1.onclick = alert('hello');
答案 0 :(得分:0)
它将在加载时启动,因为您使用alert('hello')
显式调用它。
更好"包装"它:
b1.onclick = function() {
alert('hello')
}
这样您就可以为function
分配b1.onclick
事件,并在点击按钮时调用此函数。
答案 1 :(得分:0)
在您的代码中,您调用alert
,并将其返回值设为b1.onclick
。
function Button(text) {
this.button = document.createElement('button');
this.button.id = text;
this.button.innerHTML = text;
this.button.style.width = 100;
this.button.style.height = 30;
document.body.appendChild(this.button);
};
b1 = new Button('button1');
b1.onclick = function() {
//Handle click here
alert("hello");
};
b1.onclick
应该是一个功能。
答案 2 :(得分:0)
当你说b1.onclick = alert("hello");
时,它认为你想要alert()
函数返回的任何内容进入b1.onclick
,所以它将运行该函数并找出答案。你想要的是这个:
b1.onclick = function(){
alert("hello");
};
这是一个实际的函数对象,在单击b1
时将被调用。