Javascript 在IE7中选择click event issue(Jquery)

Javascript 在IE7中选择click event issue(Jquery),javascript,jquery,events,Javascript,Jquery,Events,由于IE7不支持disabled属性,我使用jQuery向change事件添加一个事件处理程序,检查select上是否有disabled属性,并在disabled选项中将css颜色设置为灰色 但是,当我点击下拉列表时,它会首先关闭我的下拉列表,然后用灰色重新绘制新的下拉列表 这是我的密码: (function($) { $('select').change(function() { if (this.options[this.selectedIndex].disable

由于IE7不支持disabled属性,我使用jQuery向change事件添加一个事件处理程序,检查select上是否有disabled属性,并在disabled选项中将css颜色设置为灰色

但是,当我点击下拉列表时,它会首先关闭我的下拉列表,然后用灰色重新绘制新的下拉列表

这是我的密码:

(function($) {

    $('select').change(function() {
        if (this.options[this.selectedIndex].disabled) {
            if (this.options.length == 0) {
                this.selectedIndex = -1;
            } else {
                this.selectedIndex--;
            }
            //$(this).trigger('change');
        }
    });
    $('select').each(function(it) {
        if (this.options[this.selectedIndex].disabled) {
            this.onchange();
        }
    });

    $('select').click(function(e) {
        //e.stopPropagation();
        $(this).find('option[disabled]').css({
            'color': '#cccccc'
        });
    });

})(jQuery);

看看我为你做的这个例子:

它应该给你足够的信息,以便进一步发展

祝你好运

编辑 获得更多信息后更新

编辑 现在使用鼠标向下而不是单击

请检查修改后的问题是否仍然抓住了您的原始问题。在“怪癖”和“符合标准”模式中是否属实?您是否尝试过disabled=disabled XHTML替代方案?我已经有一段时间没有使用IE了,所以这些可能是愚蠢的问题…感谢编辑是的,仍然是它捕获我的问题谢谢你的代码正在处理静态下拉列表,但我的下拉列表是动态生成的,在下拉列表中禁用属性。我有5个下拉列表。如果用户从第一个下拉列表中选择任何值,则在其他下拉列表中,用户无法在其他下拉列表中选择相同的值。我已修改了脚本,因此它确实可以与您首先单击的值一起工作。再次抱歉,是的,我已经在脚本中完成了,打开下拉列表并立即关闭。在第二次点击它的工作罚款。我的假设是第一次点击它重新绘制选择列表这就是为什么它关闭下拉菜单也许鼠标向下而不是点击?有关链接,请参见修改后的答案