対応する値を設定する正しい方法は何ですか?
「for ... in」でこれを機能させる方法。
私が self[state] に関連付けた関数は、ループ中に関連付けられたものではなく、states[state] の最新の値を使用してループの後に実行されるように見えます。
cssbtn = function(id, states, state){
var self = document.getElementById(id);
var states = states || {'off': '0px 0px', 'selected': '-20px 0px', 'selected2': '-40px 0px' };
var state = state || 'off';
for (state in states) {
self[state] = function (){
alert(states[state]); //demo purposes
}
}
self.onmouseover = function(evt){
self.selected();
}
self.onmouseout= function(evt){
self.off();
}
self.onclick= function(evt){
self.selected2();
}
return self;
}