0

所以我发现这个修复了点击时在 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

clicked-class 用于防止在单击该元素后“鼠标外出”时崩溃:

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

这就是你需要这门课的全部。您不必在 CSS 中为此类指定任何规则。

于 2012-05-03T14:30:05.733 回答
0

您可以使用未在任何 CSS 文件或<style>标签中定义的 CSS 类,它们只是不会更改标签的呈现方式。

实际上,将元数据附加到您的标签是一种非常常见的做法,因为它们很容易添加和删除,而且查询起来也很简单(例如,您可以在 jQuery 等中使用选择表达式)。在这种情况下,clicked该类用于保留下拉菜单是否已被单击,否则将需要混乱的全局变量(或棘手的 lambda 函数)。

于 2012-05-03T14:30:38.603 回答