首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`.click(handler())`和`.click(handler)`的区别

`.click(handler())`和`.click(handler)`的区别
EN

Stack Overflow用户
提问于 2012-06-08 19:15:20
回答 4查看 200关注 0票数 6

我有以下代码。

代码语言:javascript
复制
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
    <script type="text/javascript" src="jquery-1.4.2.min.js" ></script>
    <script type="text/javascript">
    function myFun()
    {
        alert(5)
    }
        $(document).ready(function(){
            $("#myID").click(myFun());
        })
    </script>
 </head>

 <body>
  <input type="button" value="Click it" id="myID" />
 </body>
</html>

当我运行这段代码时,页面加载时alert(5)就会出现。如果我写

代码语言:javascript
复制
$("#myID").click(myFun)

然后,只有当我们单击该按钮时,才会出现警报。为什么它会这样呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-08 19:17:23

代码语言:javascript
复制
$("#myID").click(myFun());

这将调用myFun()并尝试安装它作为事件处理程序返回的任何内容。由于它没有返回任何内容,因此您实际上触发了#myID上的单击。

票数 10
EN

Stack Overflow用户

发布于 2012-06-08 19:17:51

Read this .click() -将事件处理程序绑定到click JavaScript事件,或使用JavaScript在元素上触发该事件。

您只需要编写$("#myID").click(myFun);而不是$("#myID").click(myFun());,因为当您在代码中编写myFun()时,该函数会立即被调用(而不是在#myID上触发单击事件时)。

Working Demo

票数 3
EN

Stack Overflow用户

发布于 2012-06-08 19:21:48

在单击事件上运行函数时,请尝试执行以下操作:

代码语言:javascript
复制
function myFun(){
    alert(5);
}

$(document).ready(function(){
    $("#myID").click(function(){
        myFun();
    });
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10947786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档