为什么当我加载页面时它运行功能并提醒我“功能运行”我没有调用它我无需功能只触发元素点击。
<script type="text/javascript">
open_close = function() {
alert("function run");
//some code ...
}
window.onload = function() {
//some code ...
var myButton = document.getElementById('button');
myButton.onclick = open_close();
//some code ...
}
</script>
这是jfiddle demo http://jsfiddle.net/ayeBP/
答案 0 :(得分:3)
啊,但你做了运行它:
myButton.onclick = open_close();
括号会调用一个函数。请改用:
myButton.onclick = open_close;
Better still (click through for legacy IE support):
myButton.addEventListener('click', open_close);
好的,这是一个简化的功能,我需要实际传递2个变量,例如
myButton.onclick = open_close(var1,var2);
你仍然不能继续使用括号,因为括号会调用该函数。使用匿名函数:
myButton.onclick = function () {
open_close(var1, var2);
};
// or, even better,
myButton.addEventListener('click', function () {
open_close(var1, var2);
});
答案 1 :(得分:1)
将open_close()
替换为open_close
在这里使用括号将立即调用该函数并将其返回值赋给myButton.onclick