我页面上有一个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事件到底是执行了还是没执行啊?求详细解答!感激不尽!
2 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
javascript的语法非常灵活,你只要知道自己想要什么效果,哪种写法能实现这个效果就行。
正常的写法
$( "#subb" ).click( function () { alert( "haha" ); }); |
通常都真么写。
$().ready( function (){ $( "#subb" ).click( function (){ alert(1); alert( "haha" ); }); }); |
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
你好,点击事件click中加的其实是一个函数:
$( "#subb" ).click( function (event) { /* Act on the event */ }); |
上面的代码是一个匿名函数,也可以是你说的第二种情况:
$( "#subb" ).click(aa); |
上面代码click之后执行函数aa。
你上面第一种和第三种情况其实是把函数执行的结果返回给了点击事件,因为函数aa后面加了()说明函数已经执行了。而你的函数里面没有返回内容,所以返回的内容是undefined。
所以第一种和第三种情况一开始就执行了函数,而不是你click事件触发的。
添加回答
举报
0/150
提交
取消