2014-02-12 123 views
2

的jQuery:移動選擇菜單保持當前的URL選擇選項

$(function() { 
      $('select').change(function(){ 
      var url = $(this).val(); 
      window.location = url; 
      }); 
     }); 

HTML:

<select> 
    <option value="http://www.coolwebsite.com.au/Sandbox/">Home</option> 
    <option value="http://www.coolwebsite.com.au/Sandbox/kitchen.php">Kitchens</option> 
    <option value="http://www.coolwebsite.com.au/Sandbox/fitouts.php">Shop Fitouts</option> 
    <option value="http://www.coolwebsite.com.au/Sandbox/officefitouts.php">Office Fitouts</option> 
    <option value="http://www.coolwebsite.com.au/Sandbox/Gallery/">Gallery</option> 
    <option value="http://www.coolwebsite.com.au/Sandbox/joinery.php">Joinery</option> 
    <option value="http://www.coolwebsite.com.au/Sandbox/jobs.php">Recent Jobs</option> 
    <option value="http://www.coolwebsite.com.au/Sandbox/contact.php">Contact Us</option> 
</select> 

它工作得很好,但一旦選擇選項單擊並出現新的一頁,在select箱返回到「主頁」選項,而不是當前頁面。想知道如何保持這個選項被選中。

+0

有我的理解對不對?您希望重新加載頁面,並且新頁面上的選定值應該設置爲您從之前選擇的值? – Niklas

+0

您需要將選定頁面添加爲相關php頁面中的選定值。例如。如果您從家中選擇「廚房」,則需要在'kitchen.php'中設置選項以讀取<選項選定值=「http://www.coolwebsite.com.au/Sandbox/kitchen.php」>廚房' –

+0

我加載我的手機菜單從PHP包括,相同的PHP包括在所有頁面,所以這種解決方案不會是最佳的。 –

回答

2

試試這個:

$(function() 
    var url = window.location.href; 
    $('select option[value="'+url+'"]').prop("selected",true); 
}); 
+1

他正在重新加載頁面。這不會在重新加載 –

+0

@PaoloCasciello不,它應該工作:) – Felix

+0

所以,這似乎太棒了!但它不適用於我= / –

0

由於您正在重新加載頁面,因此它是生成頁面的代碼(在本例中爲PHP代碼),它必須將屬性selected寫入相應的<option>標記。

<select> 
    <option value="http://www.coolwebsite.com.au/Sandbox/">Home</option> 
    <option value="http://www.coolwebsite.com.au/Sandbox/kitchen.php" selected>Kitchens</option> 
    ... 
</select>