通过更改属性更改元素的预定义样式的JQuery在ie中不起作用

Ada*_*eld 1 javascript css jquery internet-explorer css-selectors

基于elements属性,我的css中有一些预定义的样式.如果我将属性的值更新为具有预定义样式的新内容,则样式将应用于FF和Chrome,但不会应用于IE.请参阅示例并输入输入字段.

JS:

$('input').on('keypress', function(){
    var l = parseInt($(this).attr('level'), 10) + 1;
    $(this).attr('level', l);
});
Run Code Online (Sandbox Code Playgroud)

CSS:

input[level="0"]{background:red;}
input[level="1"]{background:blue;}
input[level="2"]{background:green;}
input[level="3"]{background:black;}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/ce6S4/

感谢任何帮助,谢谢.

编辑:适用于IE 9,但不是<= 8

Rob*_*b W 5

这是一个IE错误.请注意,在调整窗口大小时,元素会正确呈现.

通过设置类名触发重排:

this.className = this.className; // Or .addClass(' ');
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/ce6S4/6/

$('input').on('keypress', function(){
    var l = parseInt($(this).attr('level'), 10) + 1;
    $(this).attr('level', l).addClass(' ');
});
Run Code Online (Sandbox Code Playgroud)