【发布时间】:2015-05-09 05:27:33
【问题描述】:
我尝试在 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()
【问题讨论】:
标签: jquery wordpress scope closures