1

私のcssには、elements属性に基づいて事前定義されたスタイルがいくつかあります。属性の値を、事前定義されたスタイルを持つ新しいものに更新すると、スタイルはFFとChromeに適用されますが、IEには適用されません。例を参照して、入力フィールドに入力してください。

JS:

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

CSS:

input[level="0"]{background:red;}
input[level="1"]{background:blue;}
input[level="2"]{background:green;}
input[level="3"]{background:black;}

http://jsfiddle.net/ce6S4/

どんな助けでもありがたいです、ありがとう。

編集:IE 9で動作しますが、<=8では動作しません

4

2 に答える 2

5

これはIEのバグです。ウィンドウのサイズを変更すると、要素が正しくレンダリングされることに注意してください。

クラス名を設定して、リフローをトリガーします。

this.className = this.className; // Or .addClass(' ');

デモ: http: //jsfiddle.net/ce6S4/6/

$('input').on('keypress', function(){
    var l = parseInt($(this).attr('level'), 10) + 1;
    $(this).attr('level', l).addClass(' ');
});
于 2012-04-16T09:45:16.937 に答える
0

http://jsfiddle.net/ce6S4/3/

これを試して

   $('input').on('keydown', function(){
         var l = parseInt($(this).attr('level'), 10) + 1;
    alert(l); //can be removed.
         $(this).attr('level', l.toString()).hide().show().focus();

});​
于 2012-04-16T09:38:45.237 に答える