自分が使いやすいように下記のようなカラー オブジェクト(クラスのようなもの)を作っていたんですが、どうも 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:
コメントを投稿