2017-07-20 2 views
0

リンクを使用してportfolio.htmlページにあるクリック可能な折りたたみメニューを開くには、index.htmlページでリンクを使用したいと思います。リンクから折り畳みメニューをトリガーする新しいウィンドウを開く

Index.htmlと

<a class="sponsor-info" href="views/portfolio.html"></a> 

Portfolio.html

<ul class="folding-menu"> 
    <li class="menu-item sponsors" id="all-metro">   
    <div class="folding-content"> Content </div> 
    <li> 
</ul> 

のJSスクリプト

$('.sponsor-info').click(function() { 
    setTimeout(function() { 
     $('#all-metro').trigger('click'); 
    }, 1000); 
}); 

私のコードでは、同じページに対してのみ動作するという問題があります。しかし、index.htmlからportfolio.htmlへ(新しいページへ)移動すると、メニューは表示されません。

答えて

0

あなたの設定についてもっと詳しく知りませんが、おそらく最も簡単なことは、他のページで検出できるURLにクエリ文字列引数を使用して、メニューを開くかどうかを判断することです。以下のような何かあなたが始める必要があります。そして、portfolio.htmlページではJavaScriptをこのような何かを行う必要があります

<a class="sponsor-info" href="views/portfolio.html?open=true"></a> 

最初ににあなたのリンクを変更

$(document).ready(function(){ 
    var query = window.location.search; 
    if(query && query.length >0){ 
     var parts = query.split('='); 
     var open = parts[0] === 'open' && parts[1] === 'true' ? true : false; 
     if(open){ 
     $('#all-metro').trigger('click'); 
     } 
    } 
}); 

この必要がありますページが準備できるのを待ってから、ウィンドウの場所からクエリ文字列を取得し、開いているパラメータを探している文字列を解析してから、クリックをトリガーする前に値をチェックします。

+0

適切なhtmlページにjavascriptがありますか?リンクを変更しましたか?それがどこで失敗しているかを見つけるためにデバッグしようとしましたか? –

+0

私はそれが動作していない場所を見つけようとします... 基本的に、私はちょうどhrefからclick()イベントをトリガーしようとしています。 – John

+0

しかし、あなたはページを横切ってそれをやろうとしていますが、これは直接的には機能しません。あなたは上のものと同様のものを考え出す必要があります。あなたがリンクをクリックすると、現在のページのjavascriptがアンロードされ、新しいページがjavascriptまたはスタイルとともにブラウザによって読み込まれます。あなたのjavascriptが最初のhtmlページにある場合は、リンクをクリックするとすぐに忘れ去られます。 –

関連する問題