试图弄清楚这是怎么可能的......
$(function() {
$('#saveBtn').click(save());
});
function save(){
alert('uh');
}
.
<form id="video-details" method="post" action="">
<input id="saveBtn" class="submit" type="submit" name="submit" value="Submit Video" disabled/>
</form>
我在 save()
函数上设置了一个断点,它被一个匿名函数在列出了点击事件的行上调用。然而,这是直接在加载时发生的,更不用说输入开始时是不可见和禁用的,因此无法单击它。
我将点击功能更改为既存在又不存在的不同元素,无论我如何设置该功能仍然会在 pageload
上触发。
不知道还有什么地方可以调查这个原因,但我假设这不是正常行为
最佳答案
尝试将脚本更改为:
$(function() {
$('#saveBtn').click(save);
});
function save(){
alert('uh');
}
通过在 click
声明中使用方括号,您可以调用该函数。如果您只使用函数名称,那么您提供的是函数的引用而不是调用。
调用变量
如果您使用变量调用函数,则需要使用闭包(假设您在声明事件时有权访问该变量
$(function(){
var foo = 'bar';
$('#saveBtn').click(
function(){
save(foo);
});
function save(message){
alert(message);
}
有关关闭的更多信息,请查看 How do JavaScript closures work? .
关于javascript - 单击页面加载时触发的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7312562/