很有成就感.
主要是用在後台,
在列表時帶出簡單的圖示(YES|NO)
按下去時會AJAX資料到SERVER去,
圖示會變成(YES|NO)
;(function($){
$.fn.YesNo = function(settings){
// defalust setting
var _defautSettings = {
url : false,
type : false,
ajax : true,
input: false
};
// extend defalut setting
var _settings = $.extend(_defautSettings, settings);
// update function
function update_is_item(_no, _yn, _tp){
$.ajax({
url: '[page]',
type: 'post',
data: ({[data]}),
success: function(data){
if(data != "" ){alert(data)};
}
});
}
var _handler = function(){
var _this = this;
$(_this)
.hover(
function(){
if($(this).hasClass("yes-on")){
$(this).addClass("yes-on-hover");
}else{
$(this).addClass("no-on-hover");
}
},
function(){
if($(this).hasClass("yes-on")){
$(this).removeClass("yes-on-hover");
}else{
$(this).removeClass("no-on-hover");
}
}
)
.click(function(){
_no = $(this).attr("rel");
var _yn;
if($(this).hasClass("yes-on")){
$(this).addClass("no-on").removeClass("yes-on yes-on-hover");
_yn = (_settings.ajax ? "no" : 0);
}else{
$(this).addClass("yes-on").removeClass("no-on no-on-hover");
_yn = (_settings.ajax ? "yes" : 1);
}
if(_settings.ajax){
update_is_item(_no, _yn, _settings.type);
}else{
if(_settings.input){$("#"+_settings.input).val(_yn);}
}
});
}
return this.each(_handler);
}
})(jQuery);
參考網站
http://www.jaceju.net/blog/?p=336
http://www.jaceju.net/blog/?p=337