为什么当我加载页面时它会运行函数并提醒我"函数运行"我没有在任何地方调用它,我需要函数仅在元素单击时触发。
<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演示 http://jsfiddle.net/ayeBP/
啊,但你确实运行了它:
myButton.onclick = open_close();
括号调用函数。请改用这个:
myButton.onclick = open_close;
更好的是(点击查看旧版IE支持):
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);
});
将open_close()
替换为open_close
在此处使用括号将立即调用该函数并将其返回值分配给myButton.onclick