Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “.click(handler())”和“.click(handler))之间的区别`_Javascript_Jquery - Fatal编程技术网

Javascript “.click(handler())”和“.click(handler))之间的区别`

Javascript “.click(handler())”和“.click(handler))之间的区别`,javascript,jquery,Javascript,Jquery,我有以下代码 <!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="te

我有以下代码

<!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>
然后,只有当我们单击按钮时,警报才会出现。为什么会这样

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

阅读此内容-将事件处理程序绑定到
单击
JavaScript事件,或使用JavaScript在元素上触发该事件

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


请尝试在单击事件上运行此功能:

function myFun(){
    alert(5);
}

$(document).ready(function(){
    $("#myID").click(function(){
        myFun();
    });
})
试试这个:

这会奏效的

$(document).ready(function() {
    function myFun() {
        alert(5)
    }
            $("#myID").click(function(){
            myFun();
            });
});​

@兰兹。。如果你看到我的整个问题,我也调用了你提到的函数。但是有什么区别呢。假设我要传递任何参数,那么如何传递?
$(“#myID”)。单击(function(){myFun(some,arguments)})当您传递函数()时,意味着您打算调用该方法,如果您不这样做,则只有在触发实际单击事件时才会调用该方法。可能有助于更好地理解函数。
$(document).ready(function() {
    function myFun() {
        alert(5)
    }
            $("#myID").click(function(){
            myFun();
            });
});​