如何检测对象的change事件的属性值
How to detect property value onchange event of an object?
我有这个对象:
var Settings = {
color: localStorage.color,
size : localStorage.size
};
我想在新值更改后自动将其保存到localStorage,这意味着我想做这样的事情:
Settings.onchange = function(p){
localStorage[p] = this[p];
};
有可能吗?
附言:只需要Chrome支持。
根据@RobG的评论,我写了这个函数,它起作用了!
function onPropertyChange(o, callback){
for(var p in o){
if(o.hasOwnProperty(p)){
var originalVal = o[p];
Object.defineProperty(o, p, {
get: function(){
return originalVal;
},
set: function(val){
callback.call(o, p, val);
return originalVal = val;
}
});
}
}
}
// example:
var Settings = {
color: localStorage.color || "red",
size : localStorage.size || "12px"
};
onPropertyChange(Settings, function(p, val){
localStorage[p] = val;
});
要点如下:https://gist.github.com/1897209
相关文章:
- Bootstrap 3 Datepicker v4:dp.show和dp.change事件在Datepicker内联时不
- 在change事件javascript上动态添加行
- 了解'这'在jQuery on change事件中
- 为什么我的on change事件在ie9上返回空
- 在on.change事件之后运行函数
- 收听Aloha编辑器“aloha-smart-content-change”事件
- 当 ng-change 事件发生时,函数不会在角度 js 中调用
- 如何在角度 UI 开关中获得 ng-change 事件
- 将当前元素发送到 ng-change 事件
- 检测复选框是否在 Angular.js ng-change 事件中处于选中状态
- jquery 'change' 事件在表单中的按钮集的图像单击时未触发
- VueJS Select2 指令不会触发@change事件
- d3.js库上的On change事件重复图表
- jquery on change事件doen'不起作用
- 如何检测对象的change事件的属性值
- Meteor Change事件基于第一次选择的值
- 仅当元素具有特定属性时才执行Change事件
- html中的select on change事件不会返回所需的值
- 在dropbox on change事件时运行php函数,并从php函数返回一个表
- jQuery.trigger('click') 在 IE8 中导致“change”事件