2011-02-01 21 views
4

ここで私は、私はアイテム-'a6' は私はそれを作ることができますどのように見えるの選択ボックス、スクロールにしたい、私が理解することを助けるために http://www.jsfiddle.net/BLvsF/jquery、選択したオプションを表示可能なビューにスクロールする方法は?

をサンプルを作成しましたか? 私は同じ使用のjQueryを実装するために

$(document).ready(function() { 
    $('#btn').click(function() { 
     document.getElementById('a6').scrollIntoView(); 
     }); 
}); 

しかし、どのように同じ行うためにjqueryのを使用したいのですが? I(0).scrollIntoViewを用いに.get試み

()。まだ適用されていません。

$(document).ready(function() { 
    $('#btn').click(function() { 
     $('#a> option:selected').clone(false).appendTo('#b').get(0).scrollIntoView(); 
    }); 
}); 

http://www.jsfiddle.net/CYQfD/

それはdiv要素のような要素ではないので、おかげで、 エレイン

+2

a6アイテムに 'selected =" selected "'を付けるか、それはあなたが望むものではありませんか? –

+0

彼らはこのサイト – Luke

+0

@Lukeを残すために持っていけないので、ユーザーのためのマークアップを提供してください、ここでのマークアップをコピーしました。 – Elaine

答えて

1

だけでボタンハンドラを置き換えますこのコード行で、あなたは完了です。

$('#a').val('a6').scrollIntoView(); 
0

あなたは、ネイティブのオプション要素でこれを行うことはできません。 ドロップダウンのように機能するが、拡張可能な選択範囲にマークアップを作成する必要があります。私はあなたにいくつかの例を見ることができないので、今すぐ移動携帯電話。しかし、あなたはjqueryのドロップダウンか何かのために簡単に

検索を制御して動作するように十分に簡単に見えるものを取ることができることを、オーバーレイを作ってみようjqueryのプラグインがあります。

+0

ねえ、私はそれは私が以前考えられていたよりもはるかに簡単(0).scrollIntoViewを()、に.get使用して、解決しました。とにかくありがとう。 – Elaine

+0

私のためにあなたのソリューションは、仕事... – Luke

+0

をdoesn'tはい、これはトップにのみスクロールビューです。別のリンクhttp://stackoverflow.com/questions/1805808/jquery-scrollintoviewが見つかりましたが、Firefox3.6ではまだ適用されません。だから、今、私はまだ研究中です。 – Elaine

2

これは正常に動作します...

$(document).ready(function() { 
    $('#btn').click(function() { 
     //document.getElementById('a6').scrollIntoView(); 
     var target = $("#b"); 
     $('#a> option:selected').clone(false).appendTo(target); 
     target.get(0).selectedIndex = target.get(0).options.length - 1; 

    }); 
}); 
+0

トリック:)しかし、selectedIndexを変更して、私は別の方法を使用することができます。 – Elaine

0

私の答えはあなたのjsfiddleにHow to scroll a select list with JavaScript or jQuery?の溶液を塗布するよりもはるかにではありません。

http://jsfiddle.net/BLvsF/58/

$(document).ready(function() { 
    $('#btn').click(function() { 
    var $s = $('#a'); 
    var optionTop = $s.find('[value="a6"]').offset().top; 
    var selectTop = $s.offset().top; 
    $s.scrollTop($s.scrollTop() + (optionTop - selectTop)); 
    }); 
});