2014-02-21 46 views
0

好吧,讓我們說我有後一個下拉菜單,兩個文本框:在選擇的兩個事件上觸發jQuery?

<select name="service" class="ServiceSelect"> 
    <option value="5">Hitbox.TV</option> 
    <option value="2">Justin.TV</option> 
    <option value="4">Livestream</option> 
    <option value="1" selected="selected">Twitch.TV</option> 
    <option value="3">Ustream.TV</option> 
</select> 
<input type="text" name="value1" value="" /> 
<input type="text" name="value2" value="" class="value2" /> 

我需要基於什麼已經在下拉列表中選擇顯示/隱藏值2場......我已經這樣做使用一些簡單的jQuery腳本:

$('.ServiceSelect').on('change load', function() 
{ 
    switch ($('.ServiceSelect').val()) 
    { 
     case '1': 
     case '3': 
      $('.value2').slideDown(); 
      break; 
     default: 
      $('.value2').slideUp(); 
    } 
}); 

我遇到的問題是,jQuery的發射完全罰款「改變」。但不是當頁面最初加載時。我究竟做錯了什麼?

回答

2

select沒有一個load事件,所以你應該使用window.load代替:

function selectHandler() { 
    switch ($form.val()) 
    { 
     case '1': 
     case '3': 
      $('.value2').slideDown(); 
      break; 
     default: 
      $('.value2').slideUp(); 
    } 
} 

$(function() { 
    selectHandler(); 
}); 
$('.ServiceSelect').on('change', selectHanler); 
0

您可以在文件觸發更改事件準備像...

$('.ServiceSelect').trigger('change'); 

這將導致更改事件處理程序以在頁面加載中運行。您可以看到小提琴http://jsfiddle.net/36RT7/1/