2015-10-11 44 views
1

我有一個響應式網站,其導航欄可更改爲800像素以下的選擇列表。我使用的代碼不鏈接到任何頁面 - 它丟失了原始鏈接。我需要添加什麼才能使其工作?非常感謝您的幫助。響應式導航 - 選擇菜單無法鏈接

var options = '<option selected>Navigate to...</option>'; 
$('nav').find('a').each(function() { 
var text = $(this).text(), 
    depth = $(this).parent().parents('ul').length, 
    depthChar = '', 
    i = 1; 
for (i; i < depth; i++) { depthChar += '&#8627;&nbsp;'; } 
options += '<option>' + depthChar + text + '</option>'; 
}); 
$('<select />').append(options).appendTo('nav'); 
+0

不知道我明白這個問題。您正試圖讓選擇選項在選中時導航到頁面鏈接? –

+0

對不起,我沒有說得很好,但是這是正確的。當超過800像素時,它的菜單工作得很好。只要它下到選擇菜單,他們不鏈接。這是,但我想要添加縮進子菜單項(↳  ),我不能工作,以兼顧!? – Steve

回答

0

如果你想有選擇選項重定向到一個鏈接,您首先需要從鏈接標籤保存在href:link = $(this).attr('href'),然後將其設置爲選項的值:options += '<option value="' + link +'">' + depthChar + text + '</option>';

現在您可以訪問在選擇改變事件鏈接,並設立了窗口重定向:

$('select').change(function() { 
    window.location.href = $(this).find("option:selected").val(); 
}); 

下面是它一起的例子:https://output.jsbin.com/zodepedive/

我建議您使用ID或類來選擇元素,而不是通過標記選擇它們,以便它不會爲您的頁面上的每個元素執行此操作。