【发布时间】:2009-08-08 20:13:06
【问题描述】:
直到最近,我一直在使用 Safari 4 来测试和调试我当前的 jQuery 插件。我在 Firefox 中尝试了我的代码,它开始抱怨 JQuery-Framework 中的某些内容:“设置一个只有 getter 的属性”。 我试图找出哪一行导致 Firefox 抱怨并发现这发生在这里的某个地方**
$.fn.util.create_$dom = function(opt) {
var $dom = {};
$.each(opt.dom,function(name,val){
console.log(name);
var $elm = $('<div>');
$.each(opt.dom[name],function(_name,_val){
if(_name == 'tagName') $elm = $('<'+_val+'/>');
});
console.log(name+': ok');
$.each(opt.dom[name],function(_name,_val){ **here
switch(_name){ **here
case 'className': $elm.addClass(_val); **here
default: $elm.attr(_name, _val); **here
} **here
});
$dom[name] = $elm;
console.log(name+': ok');
});
return $dom;
};
options.dom 看起来像这样:
dom:{
wrapper:{className:'wrapper'},
inner:{tagName:'p',className:'test',test:'bla'}
},
【问题讨论】:
-
猜猜人们早上更聪明......喝了一杯浓咖啡并深呼吸后,我就是这种情况。 redsquare 对这个问题当然是完全正确的,我得到了类似的解决方案:我刚刚添加了:case 'tagName': break;为了避免这个问题,firefox爱我。
标签: javascript jquery jquery-plugins