0

私はこれについて考えていません。

それは簡単な作業のはずですが、Chrome はひどいものになりました。リストボックスのリージョンとエリアが 2 つあります。アイデアは、地域が選択されたときに地域のみを表示することです。Firefox では正常に動作しますが、Chrome では正常に動作しません。試行錯誤の結果、リストボックスのオプションを減らしても機能することがわかりましたが、多くのオプションでは Chrome でのみ機能しません。別のブラウザーで問題ありません。

貼り付けビンのスクリプトを参照してください。2 つのリスト ボックス バージョンがあります。作業バージョンはコメントされています。

http://pastebin.com/jt8JwFj4

ありがとうございました

4

2 に答える 2

0

私はあなたの問題に対する別の解決策を持っていますこのフィドルをチェックしてください

javascript

   $(document).ready(function(){                
            $("#fstarted-region").change(function() {
                var reg = $("#fstarted-region :selected").val();
                if(reg==''){
                    $("#fstarted-areas").hide();
                }else{
                    $("#fstarted-areas").show();
                    $("#fstarted-areas option").hide();
                    $("#fstarted-areas option."+reg).show();
                }

            });

        });

css

 #fstarted-areas option {
display: none;
}

#fstarted-areas{
display: none;
}
#fstarted-areas option.always {
display: none;
}
于 2012-11-02T04:53:12.857 に答える
0

Webkit ブラウザーには、CSS スタイルから分離されたオブジェクトがあります。つまり、.show()、.hide() などを実行できないということです。

.detach()いくつかのと呼び出しが機能することを期待するか.append()、単にテンプレート エンジンの使用を開始します。

.fadeIn()そもそも隠したいと仮定して、jsFiddle を呼び出しました。

HTML:

<select id="fstarted-areas" style="display: none">

Javascript:

$(document).ready(function() {
    // Get hold of all options
    var areaOptions = $("#fstarted-areas option");

    $("#fstarted-region").change(function() {
        // Also with a multiple selection I assume you need to get ALL 
        // selected instead of the first one.
        var regs = $("#fstarted-region :selected").map(function(i, el) {
            return '.' + $(el).val();
        });

        regs = $.makeArray(regs);

        // Detach all options, chain the search option.
        regs = areaOptions.detach().filter(regs.join(', '));

        // Add options into selection, then show it.
        $("#fstarted-areas").append(regs).fadeIn(500);
    });
});​
于 2012-11-02T05:03:21.083 に答える