我是JavaScript和jQuery的新手,我正在开发应用程序并且目前遇到了麻烦。我有一个对象的属性,我想在点击事件中动态更改,特别是切换。
示例代码:
var apples = {
value: "$1.00",
propertyIwantToChange: red
};
在点击事件切换时,该属性将变为绿色,再次单击它将为红色。
propertyIwantToChange: green
- > propertyIwantToChange: red
- > propertyIwantToChange: green
等等。
我想知道是否有人对此有任何见解?任何帮助表示赞赏。
答案 0 :(得分:2)
您可以为对象创建getter setter,然后您可以检查该值并相应地更改
var apples = {
value: "$1.00",
propertyIwantToChange: 'red',
getpropertyIwantToChange : function(){return this.propertyIwantToChange},
setpropertyIwantToChange : function(val){this.propertyIwantToChange = val}
}
然后点击检查值并根据需要设置值
if(apples.getpropertyIwantToChange() == 'red'){
apples.setpropertyIwantToChange('green')
}else{
apples.setpropertyIwantToChange('red')
}
答案 1 :(得分:1)
希望此代码段有用
var apples = {
value: "$1.00",
propertyIwantToChange: 'red'
};
function onClickHndler() {
// check the property value & change it
//using ternary operator
apples['propertyIwantToChange'] == 'red' ?
apples['propertyIwantToChange'] = 'green' :
apples['propertyIwantToChange'] = 'red'
}
答案 2 :(得分:1)
使用具有通用功能的三元样式:
[0, 1, 1, 2, 3, 5, 8, 13]

var apples = {
value: "$1.00",
propertyIwantToChange: 'green'
};
var toggle = function(obj, prop, first, second) {
obj[prop] = obj[prop] == first ? second : first;
};
$('input').on('click', function() {
toggle(apples, 'propertyIwantToChange', 'green', 'red');
console.log(apples.propertyIwantToChange);
});

答案 3 :(得分:0)