为了账号安全,请及时绑定邮箱和手机立即绑定

$("#time").on("click",aa(10)); 保存后自动运行(还未点击

$("#time").on("click",aa(10)); 保存后自动运行(还未点击

翻过高山走不出你 2018-10-12 14:11:06
<body><button type="text" id="time">按钮</button><script type="text/javascript">    function aa(x){    console.log(x);}//函数aa加了() 后会自动运行,并且绑定后的事件失效;不加()无法传递参数;$("#time").on("click",aa(10));</script></body>问题描述:函数aa()在没有点击的情况下会自动运行,结束后,再点击事件失效。
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

简单的方法,就是把你要执行的函数,直接写在匿名函数回调里。像这样:

$("#time").on("click", function(){
    aa(10);
});

而如果想用.on()函数直接写的话,你就必须了解事件对象这个东西,顾名思义,事件对象就是DOM在事件发生时,监听被激活后丢给事件处理程序的一个数据集合,比如常见的ev.targetev.preventDefault()什么的都是。而如果想调用自定义参数,则可以用event.data,另外传递自定义参数给处理程序需要这样按照.on( events [, selector ] [, data ], handler(eventObject) )的语法来写(详情参考)。所以最后改成:

function aa(ev){    console.log(ev.data);
}
$("#time").on("click", 11, aa);

就可以顺利看到想要的结果了。
最后多说一句,其实如果不知道是用event.data,也可以用console.table()打印下对象,找到传进去参数的位置也一样能推导出这种写法的。


查看完整回答
反对 回复 2018-11-17
  • 1 回答
  • 0 关注
  • 560 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号