2016-05-10 4 views
0

私はheader.phpにサイドバーメニューを表示するボタンが含まれています。ボタンとサイドバーはと表示され、のユーザだけがアクセスできます。このブロックの最後には、サイドバーに「アクティブ」というクラスを追加して表示させるコードが少しあります。今、私は私のユーザーはAJAXを経由して、彼らは私がちょうどボタンとサイドバーを表示するための私のヘッダブロックをリフレッシュログインしている一度ログインしますAjax経由で適切に再読み込みdiv - スクリプトが消えます

<div id="header"> 
<!-- if is_user_logged_in --> 
<a id="menu-toggle" href="#" type="button"> 
    <i class="sprite-t-toggle-side"></i> 
</a> 
<!-- sidebar menu--> 
<div id="sidebar-wrapper"><!-- menu content --></div> 
<script> 
    var $menu = $("#sidebar-wrapper"); 
    $("#menu-toggle").on("click", function(e) { 
    e.preventDefault(), 
    $menu.toggleClass("active"); 
    }); 
</script> 
</div> 

:それはのようなものです。私は私のAJAXの成功にそうするようにコード行を使用:すべてがうまくある

success: function(data){ 
       if (data.loggedin == true){ 
       $("#header").load(location.href + " #header"); 
    } 
} 

ここまでは、ユーザーがログに記録され、ボタンはを表示されているが、私はそれをクリックしたときに何も起こりません。サイドバーは表示されません。コードを見ると、ヘッダーの最後に小さな機能が表示されません。それ以外の場合は、ページ全体をリロードすると動作します。 何が起こっているのですか?私は間違って何をしていますか?

+0

内のすべてのHTMLを置き換えます負荷(LOCATION.HREF +。 "#header"); –

+0

はい。それは働いています@askingquestions – XiLab

+0

e.preventDefault()を削除してみてください、それは必要ですか? –

答えて

1

ヘッダー全体を再読み込みする理由なぜそれだけでログインしていないのですか?

私は問題はあなたが全体を再ロードしていると思います。#headerあなたはそれの一部をリロードする必要があります。


$("#header").load(location.href + " #header"); < - これは、だから、$( "#ヘッダ")を実行している #header

<div id="header"> 
<div id="loadajax"></div> <!-- Put loaded ajax in here ---> 
<!-- if is_user_logged_in --> 
<a id="menu-toggle" href="#" type="button"> 
    <i class="sprite-t-toggle-side"></i> 
</a> 
<!-- sidebar menu--> 
<div id="sidebar-wrapper"><!-- menu content --></div> 
<script> 
function runMenu() { 
    var $menu = $("#sidebar-wrapper"); 
    $("#menu-toggle").on("click", function(e) { 
    e.preventDefault(), 
    $menu.toggleClass("active"); 
    }); 
} 
runMenu(); 
</script> 
</div> 

success: function(data){ 
    if (data.loggedin == true){ 
     $("#loadajax").load(location.href + " #header"); 
     runMenu(); 
    } 
} 
+0

さてさて、私のコードにスクリプトが表示されています。私はその部分をリフレッシュしました。問題は、 'id =" menu-toggle "'が関連するスクリプトを認識しないように見えるということです。それはjavascriptのない単なるリンクのようなものです。 – XiLab

+0

はい、JavaScriptがページの読み込み中に実行されているためです。私はそれを修正するために私のポストを変更しました。 –

+0

非常に良い!!!あなたは私の一日をした。それは働いている。ありがとう。 – XiLab

関連する問題