2010-12-17 6 views
2

まず、私はJavascriptの専門家ではありません。私は新しい項目が追加されたときに自動的に最後までスクロールするSELECTボックスに機能を追加したいが、ユーザーがスクロールしていない場合にのみ機能を追加したい。SELECTスクロールのJavascriptコントロール

基本的に、ユーザーが古いエントリを確認しているときに、新しい到着者が選択リストの最後に位置をスナップすることは望ましくありません。しかし、ユーザーがスクロールバーを使用して下にスクロールすると、新しい着信音が自動的に表示されます。ここで

は、私は最後が、1つの項目が表示されているかどうかを確認するためにテストを実行する必要があることを期待していますので、これまで私が持っているもの

<script type="text/javascript"> 
    function AddItem(s) 
    { 
    document.getElementById('content').add(new Option(s)); 
    // Scroll to end - cant remember why I am using this pair of commands :) 
    document.getElementById('content').selectedIndex = document.getElementById('content').length - 1; 
    document.getElementById('content').selectedIndex = document.getElementById('content').length + 1; 
    } 
</script> 

です。もしそうなら、私たちは一番下にあり、オートスクロールを実行する必要があります。これは正しいです?私はあなたがこれを行うことができるでしょうとは思わないので、

おかげJSマスターズ

サイモン

答えて

1

選択ボックスのスクロールバーには、JavaScriptを介してアクセスできません。関連

Height of an HTML select box (dropdown)

あなたが選択されている項目を参照して選択を変更するが、私は表示された項目伝えるためにどのような方法がないと思うことができます。

+0

私はJSによって提供された '部分的な実装'が大好きです! – sipi

0

@bemaceによれば、JavaScriptは選択ボックスをスクロールするためのアクセスを提供しません。あなたができることは、アイテムを "あらかじめ選択"することです。これが "ドロップダウン"スタイルの選択であれば、そのオプションが表示されます。

<script type="text/javascript"> 
    function AddItem(s){ 
    var mySelect = document.getElementById('content'); 
    mySelect.add(new Option(s)); 
    mySelect.selectedIndex = mySelect.options.length - 1; 
    } 
</script> 

それはあなたの選択に30個のオプションを持っている場合は、しかし注意すべきである、とsize属性が言うように設定されて10(例えば、それはリストではなく、ドロップダウンとして示した)、その後、あなたは「選択」新しい(31stオプション)、リストは必ずしもそのエントリを表示するためにスクロールしません

+0

これは、固定サイズの選択ボックスです。 – sipi

+0

ああ、OKなので ''(キーにはサイズ属性が含まれています) – scunliffe

関連する問題