CSS IE Dropdown扩展onclick修复

时间:2012-05-03 14:15:27

标签: jquery css

所以我发现这个修复了点击

时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?

2 个答案:

答案 0 :(得分:0)

clicked - 类用于防止在您对该元素执行单击后“鼠标外出”时崩溃:

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

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

答案 1 :(得分:0)

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

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