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

我有以下代码。

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

当我运行此代码时,页面加载时会alert(5) 。 如果我写

 $("#myID").click(myFun) 

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

 $("#myID").click(myFun()); 

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

阅读此.click() – 将事件处理程序绑定到click JavaScript事件,或使用JavaScript在元素上触发该事件。

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

工作演示

试试这个在click事件上运行该函数:

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

试试这个:

这会奏效

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