点击登录模态框内Register超链接,注册模态框弹出后立即消失
解决登录模态框切换到注册模态框时立即消失的问题
嘿,这个坑我刚学jQuery的时候也踩过!你遇到的问题核心原因是没有阻止<a>标签的默认跳转行为——浏览器点击<a>标签后,会自动执行它的默认动作(比如跳转到href指定的地址,哪怕href是空的也会触发页面锚点跳转/刷新),导致页面状态被重置,注册模态框刚显示出来就跟着消失了。
给你两个简单有效的修改方案:
方案一:阻止事件默认行为(推荐)
在你的点击事件处理函数里,加上event.preventDefault()来拦截链接的默认跳转动作:
$('.message a').click(function(event){ // 先阻止<a>标签的默认跳转行为,这是关键! event.preventDefault(); // 隐藏登录模态框,用jQuery的hide()比直接改css更简洁 $('#LoginModal').hide(); // 显示注册模态框,同理用show() $("#RegisterModal").show(); })
方案二:用return false终止事件
如果觉得上面的写法麻烦,也可以在函数末尾返回false,同样能阻止默认跳转(还能顺带阻止事件冒泡):
$('.message a').click(function(){ $('#LoginModal').hide(); $("#RegisterModal").show(); return false; // 一句话搞定阻止默认行为 })
新手小提示
作为jQuery入门选手,尽量用官方封装好的hide()、show()、toggle()这些方法来控制元素显示隐藏,比直接操作css("display")更省心,还能避免一些样式优先级的小问题哦~
内容的提问来源于stack exchange,提问作者surre5l
相关产品推荐
相关产品推荐

