【发布时间】:2018-09-05 05:35:35
【问题描述】:
我正在尝试创建一个基于用户输入更新 CSS 的函数,并且除了 CSS 属性参数外,它都可以正常工作。
$(document).ready(function() {
$('input').blur(function() {
var inputName = $(this).attr("name");
updateCSS(inputName, 'button-style-one', 'background-color');
})
// Function to update CSS
function updateCSS(pInputNameAttribute, pElementClass, pCssProperty) {
var inputName = '[name=' + pInputNameAttribute + ']',
elementClass = '.' + pElementClass,
inputValue = $(inputName).val();
$(elementClass).css({
pCssProperty: inputValue
});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="submit.php" method="post" id="buttonSettings">
<input type="text" name="button_background_color" placeholder="Background Color">
</form>
<a href="#" class="button-style-one">Button</a>
如果我将pCssProperty: inputValue 替换为'background-color': inputValue,则此方法有效,但我需要CSS 属性作为函数的参数——我怎样才能让这个属性与变量一起工作? JSFiddle:https://jsfiddle.net/frafgdnq/10/
【问题讨论】:
-
当你定义一个对象时,比如 jQuery 的
.css()方法作为参数的对象,你可以有不带引号的属性名。变量通常不会插入到冒号的左侧。因此,您的代码试图设置一个字面上命名为pCssProperty的 CSS 属性。