2015-11-12 97 views
1
清爽页面

之后只能我遇到了引导模态一个很奇怪的问题:

我第一次与清除浏览器缓存加载我的网页上,然后点击要打开
模态它的图标没开。当我刷新页面并单击该图标时,模式将显示...当我关闭模式并再次单击该图标时,它会再次运行。

这是我标题代码:引导莫代尔

<link href="libs/jquery/jquery-ui.css" rel="stylesheet" /> 
<link href="libs/bootstrap/css/bootstrap.min.css" rel="stylesheet" /> 

<script src="libs/jquery/jquery-2.1.4.min.js"></script> 
<script src="libs/jquery/jquery-migrate-1.2.1.min.js"></script> 
<script src="libs/jquery/jquery-1.11.3.min.js"></script> 
<script>$(document).ready(function() { $.noConflict();)};</script> 
<script src="libs/bootstrap/js/bootstrap.min.js"></script> 
<script src="libs/jquery/jquery-ui.js"></script> 

这是我的身体代码:

<a id="myIcon">Open Modal</a> 

<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModal"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <h4 class="modal-title">Title</h4> 
     </div> 
     <div class="modal-body">Body</div> 
     <div class="modal-footer">Footer</div> 
    </div><!-- /.modal-content --> 
    </div><!-- /.modal-dialog --> 
</div><!-- /.modal --> 

而对于那些谁希望看到完整的代码,这是我的JS:

$(document).ready(function() { 
    $('#myIcon').click(function() { 
     $('#myModal').modal('show'); 
    } 
}); 
+0

请提供演示(Jsfiddle)。 – Alex

+0

我想你可能会因为重复的jquery导入而产生麻烦。引导程序需要jQuery并将其用于几乎任何事情。如果你输入两次,你可能会遇到麻烦。 –

+0

为什么你包含2个不同的jQuery库? –

回答

1

我知道发生了什么事。你忘了在你的主播中设置一些属性。

<a id="myIcon" data-toggle="modal" data-target="#myModal">Open Modal</a> 

<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModal"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <h4 class="modal-title">Title</h4> 
      </div> 
      <div class="modal-body">Body</div> 
      <div class="modal-footer">Footer</div> 
     </div><!-- /.modal-content --> 
    </div><!-- /.modal-dialog --> 
</div><!-- /.modal --> 

你可以避开你的脚本。在这种情况下,您的脚本只是模拟点击模式。 Bootstrap已经有一个与按钮相关的事件,这些按钮具有我在锚点中写入的属性。

$(document).ready(function() { 
    // You are triggering a click in your button 
    $('#myIcon').click(function() { 
     // After the click, you force the modal to be shown 
     $('#myModal').modal('show'); 
    } 
}); 

你可以只允许JS与模态的交互。这样,模态将不会有相关的事件。

<a class="open_modal" data-modal="myModal">Open Modal</a> 

<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModal"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <h4 class="modal-title">Title</h4> 
      </div> 
      <div class="modal-body">Body</div> 
      <div class="modal-footer">Footer</div> 
     </div><!-- /.modal-content --> 
    </div><!-- /.modal-dialog --> 
</div><!-- /.modal --> 

您删除锚点的属性,然后:

$(document).ready(function() { 

    $('.open_modal').on('click',function() { 
     var idModal = $(this).data("modal") 
     $(idModal).modal('show'); 
    } 
}); 

这样,如果单击一个.open_modal元素,它的数据模式,代表一个模式ID,它是用来显示模态。

+0

我能仅允许JS打开一个模态吗?这是进一步处理所必需的。 – njlqay

+0

@njlqay我已经更新了解决你的问题的答案 –