【问题标题】:bootstrap dropdown navbar not working引导下拉导航栏不起作用
【发布时间】:2017-01-26 19:54:59
【问题描述】:

我遇到了引导下拉菜单的问题

这是我的完整代码 https://github.com/PowerChaos/kb/

简单解释

 <!-- bootstrap -->
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<!-- JQuery -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

如果我将 jquery.js 切换到 bootstrap.js 上方,则顶部导航栏下拉菜单不起作用

下面是脚本中的一些函数,用于查看谁登录并根据登录名显示 (u()) (a()) and (s()) are functions to user/staff/admin sessions

下面侧边栏的html代码

<?php
if (u())
{
?>
<nav class="navbar navbar-inverse">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#header">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span> 
      </button>
      <a class="navbar-brand" href="../home">Knowledge Base</a>
    </div>
    <div class="collapse navbar-collapse" id="header">
        <div class="col-sm-3 col-md-3">
            <form class="navbar-form" role="search">
                <div class="input-group">
                    <input type="text" class="form-control" placeholder="Search" name="q">
                    <div class="input-group-btn">
                        <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
                    </div>
                </div>
            </form>
        </div>
      <ul class="nav navbar-nav navbar-right">
              <?php
      if (s())
      {
?>      
        <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown" href="#">Post Menu
        <span class="caret"></span></a>
        <ul class="dropdown-menu" role="menu">
        <li><a href="../s/nieuw">Nieuwe Post</a></li>
        <li><a href="../s/bewerk">Bewerk Post</a></li>
        <li><a href="../s/lijst">zie all posten</a></li>        
        </ul>
      </li>
<?php       
      }
      ?>
          <?php
      if (a())
      {

?>                  
        <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown" href="#">Admin Menu
        <span class="caret"></span></a>
        <ul class="dropdown-menu">                  
        <li><a href="../a/gebruikers">Gebruikers</a></li>
        </ul>
      </li>
<?php       
      }
      ?>
      <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown" href="#"><?php echo $_SESSION['naam'] ?>
        <span class="caret"></span></a>
        <ul class="dropdown-menu">
          <li><a href="../pass">wachtwoord</a></li>
          <li><a href="../logout">Log Uit</a></li> 
        </ul>
      </li>
      </ul>
    </div>
  </div>
</nav>
    <!-- Dynamic SiteBar -->
<div class="navbar-fixed-left">
<ul id="tree1">
<?php
require(getenv("DOCUMENT_ROOT")."/functions/database.php");
    try{    
$stmt = $db->prepare("SELECT * FROM hc");
$stmt->execute();
$result = $stmt->fetchall(PDO::FETCH_ASSOC);

}//end try
    catch(Exception $e) {
    echo '<h2><font color=red>';
    var_dump($e->getMessage());
    die ('</h2></font> ');
}
    foreach($result as $info) {
echo "<li>$info[naam]";
echo "<ul>";

    try{
$hc = $info[id];        
$stmthc = $db->prepare("SELECT * FROM shc where hc =:hc");
$stmthc->execute(array(':hc' => $hc));
$resultsub = $stmthc->fetchall(PDO::FETCH_ASSOC);

}//end try
    catch(Exception $e) {
    echo '<h2><font color=red>';
    var_dump($e->getMessage());
    die ('</h2></font> ');
}

foreach($resultsub as $sub) {
echo "<li>$sub[naam]";
echo "<ul>";

    try{
$subhc = $sub[id];      
$stmtsubhc = $db->prepare("SELECT * FROM posts where shc =:subhc");
$stmtsubhc->execute(array(':subhc' => $subhc));
$resultpost = $stmtsubhc->fetchall(PDO::FETCH_ASSOC);

}//end try
    catch(Exception $e) {
    echo '<h2><font color=red>';
    var_dump($e->getMessage());
    die ('</h2></font> ');
}

foreach($resultpost as $post) {
echo "<li><a href='../post/$post[id]'>$post[naam]</a></li>";
}
echo "</ul>";
}
echo "</li>";
echo "</ul>";
echo "</li>";
}
?>
</ul>           
</div>
<!-- Dynamic SiteBar -->    
<?php
}
?>
        <!-- Page Content -->
        <div id="page-content-wrapper">
            <div class="container-fluid">
            <div class="container content">

【问题讨论】:

  • 你能不能更详细一点,如果切换了什么,什么在 BS 下拉导航栏中不起作用?可能是非功能性的 Fiddle 代码会有所帮助
  • 通过将jquery.js 切换到bootstrap.js 上方,然后标题下拉菜单不起作用&lt;div class="collapse navbar-collapse" id="header"&gt; 如果我将jquery.js 放在bootstrap.js 下方,那么一切都可以在控制台中运行,它显示bootstrap.min.js:6 Uncaught Error: Bootstrap's JavaScript requires jQuery
  • 嗯,首先,为了让 bootstrap 工作,它肯定需要 jQuery,所以在 bootstrap 之前包含它。按照此顺序,您需要修复损坏的内容以及导航栏为何不起作用。这是一个不同的问题。但第一顺序应该始终是 jquery > bootstrap
  • 谢谢,在 jsfiddle jsfiddle.net/3t42fbw3/2 上它确实可以工作,但在我的脚本上,如果我先包含 jquery,它就不起作用,然后 topnavbar dropdown 无法工作,它只有在我放 jsquery 时才有效在引导程序下,当 jsquery 在引导程序之前,我需要更改什么才能使下拉菜单工作?
  • 好的你能告诉我当你点击下拉菜单时(当它失败时),浏览器控制台错误是什么(Ctrl + Shift + C)。

标签: php jquery html css twitter-bootstrap


【解决方案1】:

使用 jquery 1.11.1 版本并将脚本放在链接之前:

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

<link rel="stylesheet" href="bootstrap/css/bootstrap-responsive.css"/>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"/>
<link rel="stylesheet" href="bootstrap/css/styles.css"/> 

【讨论】:

    【解决方案2】:

    引导下拉菜单的工作原理概述

    当您单击 dropdown-toggle 元素时,bootstrap 会向其父元素添加一个名为 open 的类,这就是使其可见的原因。

    无法正常工作的原因

    由于某种奇怪的原因,您的下拉菜单在单击时没有打开课程。当我在调试器中明确添加该类时,它可以工作。

    解决方案

    您可以编写自己的代码,将“open”类添加到下拉列表中,如下所示:

    $('.dropdown-toggle').click(function(){
      var parent = $(this).parent();
      if(parent.hasClass('open')) { 
        parent.removeClass('open'); 
      } else {
         parent.addClass('open');
      }
    });
    

    在初始化树视图后或bootstrap.js 之后的任何地方添加此内容

    【讨论】:

    • 谢谢,此解决方案也适用于 Summernote 下拉菜单(所见即所得编辑器)
    猜你喜欢
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多