javascript - 单击页面加载时触发的功能?

标签 javascript jquery onload jquery-events mouseclick-event

试图弄清楚这是怎么可能的......

$(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/

相关文章:

javascript - 从 JavaScript 运行 WScript.Shell.Run() 时获取 "Wrong number of arguments or invalid property assignment"

javascript - 使文本内容在 UWP Javascript 中可选择

javascript - 用于检测浏览器宽度和高度的 JS 在 Chrome 和 Safari 中有效,但在 IE9 或 FF9 中无效

javascript - 为什么我的 Javascript 在 IE8 中无法运行?

javascript - 图像重新加载仅在 Firefox 中导致闪烁

javascript - 条件 AJAX 调用的优雅解决方案

javascript - 我们如何使用 jquery 计数器修改 "href"?

Javascript:最早将事件监听器添加到文档对象的时刻

c# - DevExpress MVC 控制每个页面加载生成 2mb 的 javascript

javascript - 无法在 JavaScript 中使用 onload() 访问表单元素