2016-04-14 71 views
0

我在aspx頁面中有一個列表框。當頁面加載時,我在隱藏字段上設置了locationID,並在列表框中選擇了它。由於列表框中有很多項目。當頁面不是回發時,我想在視圖上顯示選定的項目。不過,scrollintoview僅適用於元素。我在網上找到了一些例子,但它顯示在頂部。我的代碼不起作用。有人會告訴我如何在視圖上顯示選定的項目。提前致謝。如何使視圖上的列表框中的選定項目

還有就是我的jQuery代碼:

<script type="text/javascript"> 

     $(document).ready(scrollLocation); 

     function scrollLocation() { 
      var offset = 0; 
      var selectedIndex = $("#listLocation")[0].selectedIndex; 
      alert(selectedIndex); 
      $("#listLocation option").each(function (i, e) { 
       if (i == selectedIndex) return false; 
       offset += $(e).height(); 
      }); 
      $("#listLocation").scrollTop(offset); 

     } 
</script> 

回答

0

而不是使用offset()加起來height S中option S的,直到選擇一個,然後scrollTop()。這裏是小提琴:https://jsfiddle.net/h226p90k/

HTML

<select id="s1" size="5"> 
    <option value='1'>1<option> 
    <option value='2'>2<option> 
    <option value='3'>3<option> 
    <option value='4'>4<option> 
    <option value='5'>5<option> 
    <option value='6'>6<option> 
    <option value='7'>7<option> 
    <option value='8'>8<option> 
    <option value='9' selected='selected'>9<option> 
    <option value='10'>10<option> 
    <option value='11'>11<option> 
    <option value='12'>12<option> 
    <option value='13'>13<option> 
    <option value='14'>14<option> 
    <option value='15'>15<option> 
</select> 

JS

$(function(){ 
    var offset = 0; 

    // Find the selected index 
    var selectedIndex = $("#s1")[0].selectedIndex; 
    $("#s1 option").each(function(i,e){    
     // if this is the selected one, stop 
     if(i==selectedIndex) return false; 
     // otherwise add up 
     offset += $(e).height();  
    });  

    $("#s1").scrollTop(offset); 
}); 
+0

感謝。我把你的代碼放到我的函數中。但是,所選項目不在視圖中。我必須向下滾動才能看到它。我誤解你的代碼嗎? – user819774

+0

我把警報顯示的偏移值。它是0 – user819774

相關問題