【发布时间】: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上方,然后标题下拉菜单不起作用<div class="collapse navbar-collapse" id="header">如果我将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