//绑定模型
$.bind = {};
//绑定基础
$.bind.base = function (get, set) {
return function (o) {
if (typeof (o) != 'undefined') {
set(o);
};
return get();
};
};
//绑定文本
$.bind.text = function (element,func) {
var $el = element;
return $.bind.base(function () {
return $el.text();
}, function (o) {
$el.text(o);
if (typeof (func) == 'function') {
func($el, o);
};
});
};
//绑定值
$.bind.val = function (element, func) {
var $el = element;
return $.bind.base(function () {
return $el.val();
}, function (o) {
$el.val(o);
if (typeof (func) == 'function') {
func($el, o);
};
});
};
//绑定html
$.bind.html = function (element, func) {
var $el = element;
return $.bind.base(function () {
return $el.html();
}, function (o) {
$el.html(o);
if (typeof (func) == 'function') {
func($el, o);
};
});
};
//绑定bool
$.bind.bool = function (element, func) {
var $el = element;
var obj = true;
return $.bind.base(function () {
return obj;
}, function (o) {
obj = o;
if (typeof (func) == 'function') {
func($el, o);
};
});
};
//根据bool 增加 移除css
$.bind.cssClass = function (element, css, check, func) {
var $el = element;
var obj = true;
return $.bind.base(function () {
return obj;
}, function (o) {
if (check && obj == o) {
return;
}
obj = o;
if (o) {
$el.addClass(css);
} else {
$el.removeClass(css);
}
if (typeof (func) == 'function') {
func($el, o);
};
});
};
//根据bool 显示 隐藏
$.bind.visibility = function (element, check, func) {
var $el = element;
var obj = true;
return $.bind.base(function () {
return obj;
}, function (o) {
if (check && obj == o) {
return;
}
obj = o;
if (o) {
$el.show();
} else {
$el.hide();
}
if (typeof (func) == 'function') {
func($el, o);
};
});
};//绑定隐藏值
$.bind.hide = function (func) {
var obj = true;
return $.bind.base(function () {
return obj;
}, function (o) {
obj = o;
if (typeof (func) == 'function') {
func(o);
};
});
};
//绑定数组
$.bind.array = function (element, func) {
var array = [];
var $el = element;
return $.bind.base(function () {
return array;
}, function (o) {
array = o;
$el.empty();
if (typeof (func) == 'function') {
$.each(o, function (i, v) {
func($el, i, v);
});
};
});
};
//绑定对象
$.bind.obj = function (o, func) {
var list = [];
var obj = {};
for (var item in o) {
var temp = {};
temp.o = item;
var temp_obj = o[temp.o];
switch (temp_obj.t) {
case 'array':
temp.obj = $.bind.array(temp_obj.el, temp_obj.f);
break;
case 'text':
temp.obj = $.bind.text(temp_obj.el, temp_obj.f);
break;
case 'val':
temp.obj = $.bind.val(temp_obj.el, temp_obj.f);
break;
case 'html':
temp.obj = $.bind.html(temp_obj.el, temp_obj.f);
break;
case 'bool':
temp.obj = $.bind.bool(temp_obj.el, temp_obj.f);
break;
case 'hide':
temp.obj = $.bind.hide(temp_obj.f);
break;
case 'cssClass':
temp.obj = $.bind.cssClass(temp_obj.el, temp_obj.css, temp_obj.ck, temp_obj.f);
break;
case 'visi':
temp.obj = $.bind.visibility(temp_obj.el, temp_obj.ck, temp_obj.f);
break;
case 'visibility':
temp.obj = $.bind.visibility(temp_obj.el, temp_obj.ck, temp_obj.f);
break;
default:
}
list.push(temp);
};
return function (o) {
if (typeof (o) != 'undefined') {
obj = o;
$.each(list, function (i, v) {
v.obj(o[v.o]);
});
if (typeof (func) == 'function') {
func(o);
};
};
return obj;
};
};原文地址:http://blog.csdn.net/qq6648208281/article/details/41663679