`.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(); }); });