我正在用bootstrap做一个网站。

基本上,我想在主页中使用一个模态,通过Hero Unit中的按钮来调用。

按钮代码:

<button type="button" 
    class="btn btn-warning btn-large" 
    data-toggle="modal"
    data-target="#myModal">Open Modal</button>

模态代码:

<div class="modal hide fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">In Costruzione</h3>
  </div>
  <div class="modal-body">
    <p>Test Modal: Bootstrap</p>
  </div>
  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Chiudi</button>
    <button class="btn btn-warning">Salva</button>
  </div>
</div>

问题是,只要我点击按钮,模态就会淡入,然后立即消失。

我很感激你的帮助。

此外,如何改变下拉三角形的颜色(指向向上,没有悬停)?我正在做一个基于橙色和棕色的网站,那个蓝色的东西真的很烦人。


当前回答

在我的情况下,我只有一个bootstrap.js, jquery.js文件,但仍然得到这种类型的错误,我的代码按钮是这样的:

<script type="text/javascript">
$(document).ready(function(){
   $("#bttn_<?php echo $rnt['id'];?>").click(function(){
      $("#myModal_<?php echo $rnt['id'];?>").modal('show');
   });
});
</script>

我简单地添加了e.c preventdefault ();对它很有吸引力。

所以,我的新代码如下:

<script type="text/javascript">
$(document).ready(function(){
  e.preventDefault();
  $("#bttn_<?php echo $rnt['id'];?>").click(function(){
     $("#myModal_<?php echo $rnt['id'];?>").modal('show');
  });
});
</script>

其他回答

一个可能的原因

这是用于Modal插件的JavaScript被加载两次的典型行为。请检查,以确保插件没有得到双重加载。根据所使用的平台的不同,模态代码可以从多个源加载。常见的有:

BootStrap . JS(完整的BootStrap JS套件) Bootstrap.min.js(和上面一样,只是缩小了) Bootstrap-modal.js(独立插件) 依赖项加载器,例如require('bootstrap')

调试技巧

使用浏览器中的开发人员工具检查已注册的单击事件侦听器是一个很好的开始。例如,Chrome会列出JS源文件,其中可以找到注册监听器的代码。另一种选择是尝试在页面上搜索模态代码中找到的短语,例如var Modal。

不幸的是,这些并不总是能在所有情况下找到东西。检查网络请求可以让您了解页面上加载的所有内容。

一个(破碎的)演示

下面是加载bootstrap.js和bootstrap-modal.js时发生的事情的演示(只是为了确认你的经验):

砰砰作响

如果您向下滚动到该页的源代码底部,您可以删除或注释掉bootstrap-modal.js的<script>行,然后验证现在模式将按预期运行。

我也有同样的问题,但对我来说,这是因为我在模式表单中有一个类型为“提交”的按钮。我改变了

    <input  type='submit' name='submitname' id="partyBtn" value='Submit' title='Click to submit.'/>

to

    <input  type='button' name='submitname' id="partyBtn" value='Submit' title='Click to submit.'/>

这就解决了失踪问题。

不得不面对同样的问题。原因和@merv一样。问题是添加到页面的日历组件。组件本身添加了在日历弹出框中使用的模态特性。

因此,打破模型弹出窗口的原因将是以下一个或多个

加载多个bootstrap js版本/文件(缩小…) 将外部日历添加到使用引导的页面 向页面添加自定义警报或弹出库 添加弹出行为的任何其他库

我也有同样的问题。我的问题是,我是显示模式按下一个链接和提示确认与jquery。

下面的代码显示了模态,并立即消失:

<a href="" onclick="do_some_stuff()">Hey</a>

我最终在href中添加了“#”,这样链接就不会去任何地方,这解决了我的问题。

<a href="#" onclick="do_some_stuff()">Hey</a>

我知道这是旧的,但这里还有另一件事要检查—确保您只有一个data-target=属性。我复制了它,结果是按照这个线程。