0

Windows 8 pro でバージョン 27.0.1453.110 m のクロムを使用しています。単純な SELECT 要素と .change() 関数があります。この関数は、選択したアイテムが変更されたときに呼び出される必要があります。IE と FireFox、および古いバージョンの chrome でもうまく動作しますが、最新バージョンの chrome では壊れています。最初にオプションをクリックせずに、上/下矢印またはページアップ/ページダウンスクロールバーをクリックすると、change()がトリガーされます。ただし、オプションをクリックすると、この動作は消え、正常に動作します。この問題を解決する方法はありますか? 私は何か間違ったことをしていますか?

http://jsfiddle.net/TH8wk/16/

 <form method="POST" action="">
<select id="a100" size="3">
    <option value="1">1</option>
    <option selected="selected" value="4">4</option>
    <option value="21">21</option>
    <option value="211">211</option>
    <option value="2344">2344</option>
    <option value="2qwr">2qwr</option>
</select>
    </form>


    $(document).ready(function () {
        $('#a100').change(function () {
            alert('change');
        });
    });
4

1 に答える 1

0

今、私はあなたが言っていることがわかります。Chromeも私に同じことをしています。きれいではありませんが、古い値を保存すると、単純な if ステートメントで問題が解決します。http://jsfiddle.net/jG275/2/を参照してください

    var oldVal;
    $(document).ready(function () {
        oldVal = $('#a100').val();
        $('#a100').change(function () {  
            if ($(this).val() != oldVal) {
                alert('change() called...new value: ' + $(this).val());
                oldVal = $(this).val();
            }
        });
    });

ただし、これは必要ではないようです。しかし、少なくとも問題は解決します。

于 2013-06-16T03:42:20.123 に答える