我正在創建一個相當複雜的自定義元素的類。我希望能夠在創建元素時定義元素屬性(主要是CSS)。我用下面的功能來快速設置ATTRS過來爲我給出一個輸入數組:無法設置屬性X的undefined - 以編程方式創建的元素
// Sample array structure of apply_settings
//var _button_div = {
// syle : {
// position: 'absolute',
// padding : '2px',
// right : 0,
// top : 0
// }
//};
function __apply_settings(__el,apply_settings){
try{
for(settingKey in apply_settings){
__setting = apply_settings[settingKey];
if(typeof(__setting)=='string'){
__el[settingKey] = __setting;
}else{
for(i in __setting){
__el[settingKey][i] = apply_settings[settingKey][i];
}
}
}
}catch(ex){
alert(ex + " " + __el);
}
}
功能工作正常,除了在這裏:
function __draw_top(){
var containerDiv = document.createElement('div');
var buttonDiv = document.createElement('div');
__apply_settings(containerDiv,this.settings.top_bar);
if(global_settings.show_x)
buttonDiv.appendChild(__create_img(global_settings.images.close));
containerDiv.appendChild(buttonDiv);
__apply_settings(buttonDiv,this.settings.button_div);
return containerDiv;
}
發生故障的特定部分是__apply_settings(buttonDiv,this.settings.button_div);
與錯誤「不能設置未定義的屬性」位置「。所以自然,我假設buttonDiv是未定義的..我把alert(ex + " " + __el);
放在__apply_settings()中來驗證我正在使用什麼。令人驚訝的是,元素是一個div。有沒有任何理由爲什麼這個函數將爲containerDiv而不是buttonDiv工作?任何幫助將不勝感激:)
{編輯} http://jsfiddle.net/Us8Zw/2/
爲什麼你不能使用'css({...})'? _「.css(地圖) map要設置的屬性值對的地圖。」_ – gdoron
[jsfiddle](http://jsfiddle.net)請:) – WickyNilliams
@gdoron這裏沒有提及jQuery – WickyNilliams