我有以下代码:
function sdefaults()
{
alert("test");
}
var btnpos, sbtn;
btnpos = document.getElementsByName('somePosition')[0];
sbtn = document.createElement('input');
btnpos.parentNode.insertBefore(sbtn, btnpos.nextSibling);
sbtn.type = "button";
sbtn.name = "social";
sbtn.value = "Defaults";
sbtn.onClick = sdefaults();
按钮出现在我想要的位置并且名称/值设置正确。但是,当我加载页面时,sdefaults()
函数运行,然后如果我单击该按钮,则没有任何反应。谁能提供任何关于如何防止函数在加载时运行并强制它仅在 onclick 上运行的见解?
谢谢
最佳答案
改变:
sbtn.onClick = sdefaults();
到:
sbtn.onClick = sdefaults;
sbtn.onClick = sdefaults();
表示:“运行 sdefaults
函数并将结果存储在 sbtn.onClick
中。
btn.onClick = sdefaults;
意思是:“将 sbtn.onClick
设置为函数 sdefaults
”,这就是您要查找的内容。
关于Javascript 的 object.onClick 运行函数而不是设置 onClick,如何防止这种情况发生并只执行函数 onClick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2389380/