jquery中的绑定鼠标点击事件,为什么先弹出提示框
$("p").click(function(){
$(this).hide();
alert("hidden");
})
为什么用jquery为元素添加点击事件,不用回调函数,就会先弹出提示框,再执行隐藏函数,我不是很理解,可以解释一下回调函数的意义吗
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
hide本身就是异步啊。当然是先有alert。
console.log(111111111111);
alert(1);
你先吧控制台打开再刷新,肯定是能看见打印结果的。你反过来写就看不见了,要关了弹出框才有。
$(this).hide依然是在alert前面执行的,只不过这个调用相当于是发送一个事件,告诉DOM渲染线程DOM需要更新,而DOM渲染线程和JS执行的线程是互斥的,即不能同时执行,只有当前JS线程中的Task执行完成后,DOM渲染线程才会执行。DOM渲染线程执行后,你才能发现页面上的元素被隐藏了。这个问题的关键点是,JS代码执行和DOM更新是分别在两个线程中进行的,且这两个线程无法同时执行。
$.hide()是异步的,要想实现你想要的功能,使用
或者为其添加一个隐藏的类,例如