您好,关于jquery的函数到底是怎么执行的啊?有了解的吗?

我页面上有一个button按钮,<input type="button" id="subb"value="button" />
然后我在js文件中这样写:
function aa()
{
alert("haha");
}
$("#subb").click(aa());
执行结果为:在页面加载时就弹出对话框“haha”
若把js改为如下形式:
function aa()
{
alert("haha");
}
$("#subb").click(aa);
执行结果:点击按钮后,才弹出对话框
把js改为如下的形式:
function aa()
{
alert("haha");
}
$("#subb").click =aa();
执行结果为:在页面加载时就弹出对话框“haha”

对于第一种和第三种情况,我是真的不能理解,为什么页面刚加载时就进行了,那按钮的click事件到底是执行了还是没执行啊?求详细解答!感激不尽!

凤凰求蛊
浏览 232回答 2
2回答

慕标5832272

javascript的语法非常灵活,你只要知道自己想要什么效果,哪种写法能实现这个效果就行。正常的写法$("#subb").click(function&nbsp;()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("haha");&nbsp;});通常都真么写。$().ready(function(){&nbsp;&nbsp;&nbsp;&nbsp;$("#subb").click(function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("haha");&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;});

慕尼黑8549860

你好,点击事件click中加的其实是一个函数:$("#subb").click(function(event)&nbsp;{&nbsp;&nbsp;&nbsp;/*&nbsp;Act&nbsp;on&nbsp;the&nbsp;event&nbsp;*/&nbsp;});上面的代码是一个匿名函数,也可以是你说的第二种情况:$("#subb").click(aa);上面代码click之后执行函数aa。你上面第一种和第三种情况其实是把函数执行的结果返回给了点击事件,因为函数aa后面加了()说明函数已经执行了。而你的函数里面没有返回内容,所以返回的内容是undefined。所以第一种和第三种情况一开始就执行了函数,而不是你click事件触发的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
JQuery