关于JS中定义的函数自动执行

new_bug1234 2019-09-18 06:43:12
<jsp>//在此处有一个JSP


他的js文件大概像这样:
$(function(){

function a(a, b){ alert("111"); }//定义了一个函数

$("#a").click( a(a,b) );//定义ID为a的标签的click事件,传值


})
问题在于加载JSP文件时(没有点击标签),直接弹出“111”,那么是他执行了click事件吗,该怎么破??
...全文
64 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
你这样写是不对的,问题出在$("#a").click(a(a,b))click函数里传递的是一个函数对象,只传a就行了,你这样操作相当于执行a(a,b) 要么你就不要单独定义一个函数了直接写$("#a").click(function(event){}) 如果非要单独定义函数就要这么改 $(function(){ function a(event){//传递的参数都在event.data里面,比如下面的data参数传递的是{"name":"123"},这里event.data.name就是123} $("#a").click(data,a); })
回复
new_bug1234 2019-09-18
没有别处执行啊,还有就是我定义了一个a标签,设置点击事件会触发ajax向一个servlet发送请求,结果我打印输出时发现有好几次,也就是受这个请求发送了好几次???
回复
NANU-NANA 2019-09-18
不排除在别处执行该函数的可能。


请及时结帖。
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告