我尝试在WordPress中创建一个函数,用JS添加自定义颜色设置 我的职责是:
function customize_color(id,selector,prop){
wp.customize(id, function(value) {
value.bind(function(to) {
$(selector).css({
prop:to
});
});
})
}
我想这样称呼它:
customize_color('body_background','body','background')
使用调试器我注意到function(to)
内部我可以使用外部函数的selector
参数。但prop
无法在那里访问
据我所知它适用于闭包。但selector
在内部函数中不可见。
有人能说为什么会这样吗?
也许如何编辑它以访问prop
?
感谢Tim Vermaelen,我理解并记住{prop:to}
将创建一个带有prop
键的对象(不是'background'
属性作为键)。
此外,调试器说"错误:变量已针对prop
var进行了优化" 。
我删除了{prop:to}
部分,可以从内部函数中看到调试器中的这个变量
所以问题不在于封闭......
我发现从字符串变量中创建对象键的正确方法是下一步:
var rules={}
rules[prop]=to
$(selector).css(rules);
因此我可以将对象传递给.css()
答案 0 :(得分:0)
我认为问题在于您使用.css()
功能的方式。
您可以使用对象文字传递属性和值的集合,这就是您所做的。或者您可以传递具有值的单个属性。这两个选项都需要一些不同的语法。
试试这个:
$(selector).css(prop, to);