[jQuery Plugin] Yes No Button

今天自己嘗試寫了一個新的Plugin很簡單,
很有成就感.
主要是用在後台,
在列表時帶出簡單的圖示(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