重新加载页面时,Javascript onclick事件开始

时间:2015-09-27 17:58:26

标签: javascript button javascript-events onclick

我想通过构造函数通过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');

3 个答案:

答案 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时将被调用。