2016-06-16 9 views
0

私は私のページに、私は別のファイルnav01.phpに配置した内部の内容は、多くを変更するために使用され、別の単一ファイル。問題は、すべてのページで同じファイルを使用したいのですが、可能であれば、現在のページを可能な限りアクティブにすることです。jQueryのロードメソッドとBoostrapのnavbarがアクティブ

私はすべてのページにnavbarコードを持っていましたが、それは機能しましたが、seaparateファイルに移動してすべてのページにjquery loadメソッドで読み込むと動作しません。ファイルは正常に読み込まれますが、現在のページをアクティブとしてマークするために使用したコードはもう機能しません。何もしません。

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("li a[href='" + location.href.substring(location.href.lastIndexOf("h/") + 1, 255) + "']").parent().addClass("active"); 
}); 
</script> 

これは私が使用してロードコールされています。これは、新しいファイルに移動する前に働いていたスクリプトです

<div class="container-fluid"> 
     <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar"> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span>       
     </button> 
     <a class="navbar-brand" href='home.php'><span class="glyphicon glyphicon-home"></span></a> 
     </div> 
     <div class="collapse navbar-collapse" id="myNavbar"> 
     <ul class="nav navbar-nav"> 
<li><a href='documentation.php'>Documentation</a></li> 
<li><a href='admin.php'>Admin</a></li> 
<li><a href='login.php'>Login</a></li> 
     </ul> 
    </div> 
    </div> 

この

はnav01.php、私のナビゲーションバー内のコンテンツです他のすべてのPHPページにnav01.phpを書き込むため:

$(document).ready(function(){ 
    $("#nav01").load("nav01.php"); 
});   

スクリプト/ script.jsを呼び出すだけで

のphpファイルはIDのみでNAVを持って、一番下にロードされた私のスクリプト:私はそれを理解していれば、問題は、私はjQueryのコードを使用しようとしている

<nav class="navbar navbar-inverse" id="nav01"></nav> 
<script src="script/script.js"></script> 

、クライアント側、PHPページでは、サーバーが実行し、 "そのまま"読み込みますか?ページを読み込むと、それはもはや変更することができません。なぜなら、そのコードがそのPHPページに呼び出されていないからです。 nav01内のスクリプトコードは現在の場所を取得しますが、実行されるとnav01ページ内にあるので、アクティブなページはないので何もしません。

私はここで多くの答えを探していますが、私の状況には何もありませんでした。私は解決策を見つけられませんでした。$ _SERVER ['REQUEST_URI'] phpはnav01.php、 navが挿入されるページのアドレスを指定してjQueryロードメソッドを介してGET変数を送信できるかどうかはわかりません。

ありがとうございました。

答えて

0

準備完了のjQueryイベントは、DOMコンテンツの準備ができた時点で1回だけ発生します。 私が推薦することのような負荷の関数のコールバックであなたの能動素子マーキング機能を入れている:、

$("#nav01").load("nav01.php", function() { 
    $("li a[href='" + location.href.substring(location.href.lastIndexOf("h/") + 1, 255) + "']").parent().addClass("active"); 
}); 
+0

それは私が同じのために考えては動作しませんので、負荷が成功を収めたが、nav01た後に呼び出された場合、このコールバック関数。 PHPはクライアント側にないと思うので、selectは何もしません。 – AitorMotril

関連する問題