JavaScript 对象。如何创建一个调用同一对象内函数的按钮

标签 javascript object button

我有一个名为“avatar”的 JS 对象,它带有一个创建函数,可以在 HTML 页面上生成一个按钮并设置一些属性。

我想在按钮上设置一个 onmouseover 来调用头像对象中的函数,所以我写了:

this.create = function(){
    this.button = document.createElement("BUTTON");
    this.text = document.createTextNode(this.name);
    this.button.appendChild(this.text);
    document.body.appendChild(this.button);
    this.button.style.background=this.color;
    this.button.addEventListener("mouseover", this.randomMove());
}

但是,函数 randomMove 会立即执行,不会等待鼠标悬停在按钮上。随后的鼠标悬停不会执行任何操作。

最佳答案

您需要向其传递函数体,而不是函数返回的内容。在您的例子中,代码评估 this.randomMove() 并将返回的结果分配给 mouseover 事件处理程序。它应该是这样的:

this.button.addEventListener("mouseover", this.randomMove);

请参阅这个简单的示例,轻松了解发生的情况:http://jsfiddle.net/f8tm4jq3/

关于JavaScript 对象。如何创建一个调用同一对象内函数的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26408829/

相关文章:

javascript - 闭包编译器 --debug 解决了我的错误

javascript - anchor 标记不适用于图像 http ://www. smoothdivscroll.com/demo.html

javascript - 从使用点表示法构建的 JSON 对象访问文本

java - 当引用变量被分配一个对象时,我们将该变量称为对象而不是引用变量?

javascript - 我可以仅使用 JavaScript 和按钮元素更改整个网站(2 页)上的所有图片吗?

javascript - 打破 iframe 中的父级、顶级变量以防止框架破坏,但仍然访问父级的功能

javascript - 推特 Bootstrap - JS 不工作

c++ - 如何在基类中调用派生类的函数?

python - Tkinter - 如何禁用现有按钮

html - CSS 按钮有边框