2012-02-02 72 views
1

新手問題:jQuery:基於<Option>導航選擇

在jQuery中,如何在選擇時讓瀏覽器導航到選定的飲料?

<select name="selDrink" id="selDrink"> 
    <option value="http://coke.com">Coke</option> 
    <option value="http://pepsi.com">Pepsi</option> 
</select> 

回答

1
//select the element and bind a `change` event handler to it 
$('#selDrink').on('change', function() { 

    //redirect the user to the value of the select element 
    window.location = this.value; 
}); 

你可能會想在頂部有一個空白<option>因此所有<option> s的實際value旨意可選:

HTML -

<select name="selDrink" id="selDrink"> 
    <option value="">Choose One</option> 
    <option value="http://coke.com">Coke</option> 
    <option value="http://pepsi.com">Pepsi</option> 
</select> 

JS -

$('#selDrink').on('change', function() { 

    //check if the selected value of this element is blank, if not then redirect to the value 
    if (this.value != '') { 
     window.location = this.value; 
    } 
}); 

請注意,.on()是jQuery 1.7中的新增功能,在這種情況下正在使用,如.bind()

這裏是一個演示:http://jsfiddle.net/Duanx/

文檔爲window.locationhttps://developer.mozilla.org/en/DOM/window.location

+0

你爲什麼用'上('改變...'而不僅僅是'的變化( )'? – 2012-02-02 19:16:46

+0

我更喜歡這個語法,尤其是因爲刪除了使用'.off()'的事件處理函數,我更喜歡這個語法的另一個原因是因爲'.change(function(){})之間的含糊性'一個d'.change()'。我也使用'.trigger('click')'而不是'.click()'。 – Jasper 2012-02-02 19:19:14

1
$("#selDrink").change(function() { 
    window.location.href = $(this).val(); 
}); 
1
<select name="selDrink" id="selDrink"> 
    <option>Select a Drink</option> 
    <option value="http://coke.com">Coke</option> 
    <option value="http://pepsi.com">Pepsi</option> 
</select> 

<script> 

    $('#selDrink').change(function navigate() { 

     window.location.href = $(this).val(); 
    }); 

</script> 
1
$(function(){ 
    $('#selDrink').change(function(){ 
     window.location.href = $(this).val(); 
    }); 
});