自分が使いやすいように下記のようなカラー オブジェクト(クラスのようなもの)を作っていたんですが、どうも IE では toString を呼んでくれないようだ。
function Color(){
this.initialize.apply(this, arguments);
}
Color.prototype = {
initialize:function(arguments){
var r = arguments.r || 0;
var g = arguments.g || 0;
var b = arguments.b || 0;
var name = arguments.name || "";
var code = arguments.code || "";
this.R = function(){ return r; };
this.G = function(){ return g; };
this.B = function(){ return b; };
this.Name = function(){ return name; };
this.Code = function(){ return code; };
},
toString:function(){
return (this.Code());
}
}
Color.aqua = function(){
return new Color({r:0, g:255, b:255, code:"#00ffff", name:"aqua"});
}上の Color オブジェクトは toString を書き換えてカラーコードを返すようにしています。
で、こんな感じで使用するつもりでした。
$(function(){
$("div").css("background-color", Color.aqua());
});Firefox や Chrome ではちゃんと背景色が変わるんですが、IE では toString が呼ばれないため、結果として背景色が変わらない。
何かとウザス、IE の奴め!





0 Comments:
コメントを投稿