html - 漏洞 : Bootstrap Modal Box

标签 html css twitter-bootstrap

我使用的是 Bootstrap 3,我创建了一个包含启动 bootstrap 模态框链接的 NavBar。

几秒钟后,模态框卡住了!!当我在它外面点击时,它消失了,所有的网站布局错误(背景颜色变化,菜单位置......)..然后我不能再打开它了!应该刷新页面...

我注意到 ModalBox 向 <body> 添加了“modal-open”类但是在关闭时,类仍然在这里......

链接:www.tafraout.net
点击 : "Espace Membre"启动 ModalBox

错误截图:http://d.pr/i/6Tpf

最佳答案

当我尝试直接从 javascript 控制台打开模式时,例如通过评估 $( "#LoginModal").modal( "toggle");,效果很好。这意味着你没有以正确的方式打开它;事实上,缺少的是 href 属性。

当您点击您的链接时,Bootstrap 将拦截该事件并切换模态对话框; 但是,Javascript 正在执行事件传播(有关更多信息,请参阅this topic),这意味着您的链接随后会正常执行。因为您在其中放置了一个绝对 URL,它会尝试将您带到一个新页面。

解决它的两种方法:要么将 # 作为链接目标,但您的窗口中仍然会有一些移动,因为浏览器会将焦点放在页面顶部。在您的情况下,这不会有任何坏处,但如果您不知道这个技巧,它可能会导致一些奇怪的行为。

第二种解决方案是将事件附加到链接,并手动切换模式;例如 jQuery :

$( "#yourLink" ).on( "click", function() {
    $( "#LoginModal" ).modal( "toggle" ); // Toggle the modal
    return false;
});

return: false; 将停止事件传播,因此您的链接不会被跟踪(您的页面不会发生任何变化);如果你不想使用 return 值,你可以简单地在事件对象上调用 stopPropagation() (不要忘记将它包含在你的函数中:

$( "#yourLink" ).on( "click", function( e ) {
    $( "#LoginModal" ).modal( "toggle" ); // Toggle the modal
    e.stopPropagation();
});

关于html - 漏洞 : Bootstrap Modal Box,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20123783/

相关文章:

css - 你如何调整 bootstrap 表单和按钮在 div 中的高度相同?

javascript - 选择下拉列表需要在选择时显示提供者的详细信息 - 无法通过我的脚本显示 url

css - 将 css 属性添加到 menu_local_action Drupal 7

javascript - Bootstrap 4隐藏未关闭的警报

jquery - CSS3 transition 在动画结束前获取目标参数值

html - 在 Angular4 中拆分超链接

javascript - Twitter bootstrap 轮播 youtube 视频自动启动

css - 当我将鼠标悬停在一个 div 上时,我希望它的背景从黑色变为白色,链接的文本从白色变为黑色

CSS 3 列 Div 循环

javascript - 测试文本区域中的特定文本格式