【发布时间】:2016-05-04 05:56:25
【问题描述】:
我的目标是在使用 javascript 单击按钮元素时更改它们的边框样式。我创建了一个函数 setBorder 并分配给所有按钮元素上的 onclick 事件:
function setBorder(myobj) {
myobj.style.borderStyle = "inset";
}
var menubtn = document.getElementById("menu_btn");
menubtn.onactive = setBorder(menubtn);
这里的问题是边框样式在页面加载后立即更改,因为在解析 javascript 时,由于括号 () 而执行函数 setBorder()。我认为的另一种选择是:
function setBorder() {
this.style.borderStyle = "inset";
}
var menubtn = document.getElementById("menu_btn");
menubtn.onactive = setBorder;
我以为this 会拿走menubtn 的对象——但这并没有发生。为什么this 不拿对象menubtn?
我认为有一种方法可以将setBorder 链接为所有按钮元素的原型对象。原型对象将有一个函数func_SetBorder 作为它的属性。然后我们可以将func_setBorder 称为:
menubtn.onclick = menubtn.func_setborder;
【问题讨论】:
标签: javascript html