Dam*_*mon 7 javascript jquery javascript-events onload mouseclick-event
试图弄清楚这是怎么可能的......
$(function() {
$('#saveBtn').click(save());
});
function save(){
alert('uh');
}
Run Code Online (Sandbox Code Playgroud)
.
<form id="video-details" method="post" action="">
<input id="saveBtn" class="submit" type="submit" name="submit" value="Submit Video" disabled/>
</form>
Run Code Online (Sandbox Code Playgroud)
我在save()函数上设置了一个断点,它由列出click事件的行上的匿名函数调用.然而,这是直接在加载时发生的,更不用说输入开始不可见和禁用,因此无法单击它.
我将click函数更改为存在且不存在的不同元素,无论我做什么,该函数仍会在页面加载时触发.
不确定在哪里调查其原因,但我认为这不是正常行为
det*_*lor 25
尝试将脚本更改为:
$(function() {
$('#saveBtn').click(save);
});
function save(){
alert('uh');
}
Run Code Online (Sandbox Code Playgroud)
通过在click声明中使用括号来调用函数.如果您只使用函数名称,那么您将提供函数的引用而不是调用.
如果使用变量调用函数,则需要使用闭包(假设在声明事件时可以访问变量)
$(function(){
var foo = 'bar';
$('#saveBtn').click(
function(){
save(foo);
});
function save(message){
alert(message);
}
Run Code Online (Sandbox Code Playgroud)
有关闭包的更多信息,请查看JavaScript闭包如何工作?.