我有以下代码。
<!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)就会出现。如果我写
$("#myID").click(myFun)然后,只有当我们单击该按钮时,才会出现警报。为什么它会这样呢?
发布于 2012-06-08 19:17:23
$("#myID").click(myFun());这将调用myFun()并尝试安装它作为事件处理程序返回的任何内容。由于它没有返回任何内容,因此您实际上触发了#myID上的单击。
发布于 2012-06-08 19:17:51
Read this .click() -将事件处理程序绑定到click JavaScript事件,或使用JavaScript在元素上触发该事件。
您只需要编写$("#myID").click(myFun);而不是$("#myID").click(myFun());,因为当您在代码中编写myFun()时,该函数会立即被调用(而不是在#myID上触发单击事件时)。
Working Demo
发布于 2012-06-08 19:21:48
在单击事件上运行函数时,请尝试执行以下操作:
function myFun(){
alert(5);
}
$(document).ready(function(){
$("#myID").click(function(){
myFun();
});
})https://stackoverflow.com/questions/10947786
复制相似问题