2017-07-20 59 views
0

我想用我的index.html頁面上的鏈接,打開portfolio.html頁面上點擊菜單摺疊一旦鏈接得到我portfolio.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,以確定是否菜單應該是開放與否。像下面的東西應該讓你開始:

首先改變你的鏈接:

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

然後portfolio.html頁面上的JavaScript應該做這樣的事情:

$(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

讓我試圖找到它不工作... 基本上,我只是想觸發從A HREF點擊()事件。 – John

+0

但是您要跨頁,它不直接工作做,你必須拿出周圍類似上述作品。當你點擊一個鏈接時,當前頁面上的JavaScript被卸載,瀏覽器將加載新頁面以及任何javascript或樣式。如果你的javascript在第一個html頁面中,它幾乎只要你點擊鏈接就會被遺忘。 –