Jquery CSS IE下拉列表扩展onclick修复

Jquery CSS IE下拉列表扩展onclick修复,jquery,css,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', f

因此,我找到了一个在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的点击?需要吗?或者jquery只是添加了一个空的clicked类吗?

clicked类是为了防止在您单击该元素后鼠标外出时崩溃:

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

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

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


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

它是这样工作的吗?试着测试一下,如果它没有添加点击类,如果这也不起作用,回来问一个实际的问题。是的,它起作用了。我只是想知道为什么没有他添加点击的css类,或者我是否需要添加我自己的css点击类
if (!$j(this).hasClass('clicked')){...}