试图弄清楚这是怎么回事...
$(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()
函数上设置了一个断点,匿名函数在列出了click事件的行上调用了该断点。但是,这是直接在加载时发生的,更不用说输入从不可见和禁用开始,因此无法单击它。
我将click函数更改为既存在又不存在的不同元素,无论我使它如何,该函数仍会在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?。>>
尝试更改为此。您不小心点击了[]
$(function() {
$('#saveBtn').click(function (){
save()});
});