在IE7中选择单击事件问题(Jquery)

时间:2011-08-19 10:01:52

标签: javascript jquery events

由于IE 7不支持disabled属性,我使用jQuery向change事件添加事件处理程序,该事件检查select和是否存在disabled属性在已禁用选项上将css color设置为grey

然而,一旦我点击下拉列表,它会先关闭我的下拉列表,然后重新绘制一个灰色的新下拉列表。

这是我的代码:

(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);

1 个答案:

答案 0 :(得分:0)

看看我为你做的这个例子: http://jsfiddle.net/auNVE/

它应该为您提供足够的信息以便进一步开发!

祝你好运!


修改
有更多信息后更新
http://jsfiddle.net/auNVE/1/


修改
现在使用mousedown代替click
http://jsfiddle.net/auNVE/2/