javascript - Bootstrap javascript的加载顺序

标签 javascript jquery html css twitter-bootstrap

我一直在使用 Bootstrap 联系表遇到麻烦。加载 javascript 文件的时间似乎很重要。 根据位置的不同,有些东西无法正常工作:

如果是:

<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>

我的联系表不起作用。单击“提交”按钮,没有任何反应。但是 bootstrap 的折叠菜单按钮工作正常。

如果加载顺序是这样的:

<script src="js/bootstrap.min.js"></script>
<script src="js/jquery-1.10.2.min.js"></script>

联系表(尤其是提交按钮)按预期工作。但崩溃 Bootstrap 菜单按钮不能正常工作。它是不可点击的。

我尝试了一切,但我不知道这种行为的原因。 您是否有想法,如何让这两者相互配合?

这是我的完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
    <title>Contact Form</title>
   <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="css/style.css">
</head>

<body>
    <div class="navbar navbar-fixed-top" data-activeslide="1">
      <div class="container">
      <!-- .navbar-toggle is used as the toggle for collapsed navbar content -->
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
       <span class="icon-bar"></span>
      </button>

      <div class="nav-collapse collapse navbar-responsive-collapse">
        <ul class="nav row"> 
           <li data-slide="1" class="col-12 col-sm-2"><a id="menu-link-1" href="#slide-1"> <span class="text">MENU 1</span></a></li>
           <li data-slide="2" class="col-12 col-sm-2"><a id="menu-link-2" href="#slide-2"> <span class="text">MENU 2</span></a></li>
         </ul>
         <div class="row">
           <div class="col-sm-2 active-menu"></div>
         </div>
      </div><!-- /.nav-collapse -->
      </div><!-- /.container -->
    </div><!-- /.navbar -->

    <div class="slide story" id="slide-1" data-slide="1">
      <div class="container">
       <div class="row">
         <div class="col-12">
           <p>TEST</p>
         </div>           
       </div>
     </div><!-- /container -->
   </div>

    <div class="slide story" id="slide-2" data-slide="2">
      <div class="container">
       <div class="row">
         <div class="col-12">
           <div class="well">
             <form id="contact-form" class="form">
               <fieldset>
               <legend>Contact Form</legend>
                 <div class="form-group">
                   <label for="name" class="control-label">Name</label>  
                   <input type="text" class="form-control" id="name" name="name1" placeholder="name"/>              
                 </div>
                 <div class="form-group">
                   <label for="name" class="control-label">E-Mail</label>
                   <input type="text" class="form-control" id="email" name="email" placeholder="email"/>   
                 </div>
                 <div class="form-group">
                   <label for="name" class="control-label">Phone</label>
                   <input type="text" class="form-control" id="phone" name="phone" placeholder="phone"/>   
                 </div>
                 <div class="form-group">
                   <label for="name" class="control-label">message</label>
                   <textarea type="text" id="message" class="form-control"  name="message" rows="10" cols="40" placeholder="Message"></textarea>
                 </div>
                 <div class="form-group">
                   <button value="Send" class="btn btn-primary" type="submit" id="submit" name="submit">Send</button>      
                   <button type="reset" class="btn">Clear</button> 
                 </div>
               </fieldset>
             </form>
           </div>
         </div>           
       </div>
     </div><!-- /container -->
   </div>



  <!-- Java-Scripts -->
  <script src="js/html5shiv.js"></script>
  <script src="js/jquery-1.10.2.min.js"></script>
  <script src="js/bootstrap.min.js"></script>
  <script src="js/jquery-migrate-1.2.1.min.js"></script>
  <script src="js/jquery.easing.1.3.js"></script>
  <script src="js/script.js"></script>
  <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
  <script src="js/val55.js"></script>

 </body>
</html> 

这是 val55.js 文件的样子:

$(document).ready(function() {
    $("#contact-form").validate({
        rules: {
            name1:{
                minlength: 3,
                maxlength: 20,
                required: true
            },
            email:{
                minlength: 3,
                required: true,
                email: true
            },
            phone:{
                minlength: 3,
                required: true
            },
            message: {
                minlength: 10,
                required: true
           }         
        },
        highlight: function(element) {
            $(element).closest('.form-group').removeClass('has-success').addClass('has-error');
        },
        unhighlight: function(element) {
            $(element).closest('.form-group').removeClass('has-error').addClass('has-success');
        },
        submitHandler: function(form) {
        //form.submit();
          alert('Hallo');
        }
    })
}); // end document.ready

问候, 约翰

最佳答案

这样做:

  <script src="js/html5shiv.js"></script>
  <script src="js/jquery-1.10.2.min.js"></script>
  <script src="js/jquery-migrate-1.2.1.min.js"></script>
  <script src="js/bootstrap.min.js"></script>
  <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
  <script src="js/script.js"></script>
  <script src="js/val55.js"></script>

您可能需要在最后一个脚本之间切换,只要您的 javascript 中没有任何错误,一切都应该可以正常工作。

关于javascript - Bootstrap javascript的加载顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21972307/

相关文章:

javascript - 对 2 个跨度元素中的两个值求和(每个跨度元素的值可以由用户通过下拉菜单选择)

javascript - 使用 jquery 实时更新 css 属性

javascript - 如何在 JavaScript 中调用对象数组的方法?

javascript - 单击 Command 键不会打开新选项卡,但单击中键可以打开新选项卡

javascript - 无法将按钮附加到 jquery

HTML 导航栏按钮只有在您单击其中的文本时才有效

javascript - 如何在 AngularJS 组件中绑定(bind)多个单词属性

javascript - 将文本转换为 css

javascript - Jquery hide() show() 在 Internet Explorer 10 中不起作用

html - 如何阻止 float div 换行到下一行 - 尝试了一切