0

SO クリックするとIEで展開するドロップダウンのこの修正を見つけました

if ($j.browser.msie && $j.browser.version < 9)
    $j("#partDropdown,#categoryDropdown")
        .live("focus mouseover", function() { $j(this).addClass('expand').removeClass('clicked'); })
        .live('click', function() { $j(this).toggleClass('clicked'); })
        .live('mouseout', function() {
            if (!$j(this).hasClass('clicked')) {
                $j(this).removeClass('expand');
            }
        })
        .live('blur', function() { $j(this).removeClass('expand clicked'); });

次のcssもありました

.expand select
{
    width: auto !important;
}

しかし、クリックされた css はありませんでしたか? 必要ですか?それとも、jquery は clicked の空のクラスを追加するだけですか?

4

2 に答える 2

0

-class は、そのclicked要素をクリックした後に「マウスアウト」したときに折りたたまれるのを防ぐためにあります。

if (!$j(this).hasClass('clicked')){...}

このクラスに必要なのはそれだけです。CSS でこのクラスのルールを指定する必要はありません。

于 2012-05-03T14:30:05.733 に答える
0

CSS ファイルまたは<style>タグで定義されていない CSS クラスを使用できますが、タグのレンダリング方法は変更されません。

タグにメタデータを添付することは、実際には非常に一般的な方法です。メタデータは簡単に追加および削除でき、簡単にクエリを実行できるからです (たとえば、jQuery などで選択式を使用できます)。この場合、clickedクラスは、ドロップダウンがクリックされたかどうかを保持するために使用されます。それ以外の場合は、厄介なグローバル変数 (またはトリッキーなラムダ関数) が必要になります。

于 2012-05-03T14:30:38.603 に答える