我有以下代码。
<!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)
然后只有当我们点击按钮时才会显示提醒。为什么它会像这样?
答案 0 :(得分:10)
$("#myID").click(myFun());
这会调用myFun()
并尝试安装它作为事件处理程序返回的任何内容。由于它没有返回任何内容,因此您实际上触发点击#myID
。
答案 1 :(得分:3)
阅读此.click() - 将事件处理程序绑定到click
JavaScript事件,或使用JavaScript在元素上触发该事件。
您只需要编写$("#myID").click(myFun);
而不是$("#myID").click(myFun());
,因为当您在代码中编写myFun()
时,会立即调用该函数(而不是在{{1}上触发点击事件时})。
答案 2 :(得分:2)
尝试使用此功能在click事件上运行该功能:
function myFun(){
alert(5);
}
$(document).ready(function(){
$("#myID").click(function(){
myFun();
});
})
答案 3 :(得分:2)
试试这个:
这将有效
$(document).ready(function() {
function myFun() {
alert(5)
}
$("#myID").click(function(){
myFun();
});
});