-
Notifications
You must be signed in to change notification settings - Fork 21
/
jquery.rating.pack.js
5 lines (5 loc) · 2.33 KB
/
jquery.rating.pack.js
1
2
3
4
5
// Chris Richards 2009
// rating control for jQuery. version 1.07
// Last Update 6/21/2011
// http://zensoftware.org/
(function(c){c.fn.rating=function(h){var d={showCancel:!0,cancelValue:null,cancelTitle:"Cancel",startValue:null,disabled:!1},e={hoverOver:function(a){a=c(a.target);a.hasClass("ui-rating-cancel")?a.addClass("ui-rating-cancel-full"):a.prevAll().andSelf().not(".ui-rating-cancel").addClass("ui-rating-hover")},hoverOut:function(a){a=c(a.target);a.hasClass("ui-rating-cancel")?a.addClass("ui-rating-cancel-empty").removeClass("ui-rating-cancel-full"):a.prevAll().andSelf().not(".ui-rating-cancel").removeClass("ui-rating-hover")}, click:function(a){var b=c(a.target),f=d.cancelValue;b.hasClass("ui-rating-cancel")?e.empty(b):(b.closest(".ui-rating-star").prevAll().andSelf().not(".ui-rating-cancel").prop("className","ui-rating-star ui-rating-full"),b.closest(".ui-rating-star").nextAll().not(".ui-rating-cancel").prop("className","ui-rating-star ui-rating-empty"),b.siblings(".ui-rating-cancel").prop("className","ui-rating-cancel ui-rating-cancel-empty"),f=b.attr("value"));a.data.hasChanged||c(a.data.selectBox).val(f).trigger("change")}, change:function(a){var b=c(this).val();e.setValue(b,a.data.container,a.data.selectBox)},setValue:function(a,b,d){var g={target:null,data:{}};g.target=c(".ui-rating-star[value="+a+"]",b);g.data.selectBox=d;g.data.hasChanged=!0;e.click(g)},empty:function(a){a.prop("className","ui-rating-cancel ui-rating-cancel-empty").nextAll().prop("className","ui-rating-star ui-rating-empty")}};return this.each(function(){var a=c(this),b,f;"select-one"===this.type&&!a.prop("hasProcessed")&&(h&&c.extend(d,h),a.hide(), a.prop("hasProcessed",!0),b=c("<div/>").prop({title:this.title,className:"ui-rating"}).insertAfter(a),c("option",a).each(function(){this.value!=""&&c("<a/>").prop({className:"ui-rating-star ui-rating-empty",title:c(this).text(),value:this.value}).appendTo(b)}),!0==d.showCancel&&c("<a/>").prop({className:"ui-rating-cancel ui-rating-cancel-empty",title:d.cancelTitle}).appendTo(b),0!==c("option:selected",a).size()?e.setValue(a.val(),b,a):(f=null!==d.startValue?d.startValue:d.cancelValue,e.setValue(f, b,a),a.val(f)),!0!==d.disabled&&a.prop("disabled")!==!0&&c(b).bind("mouseover",e.hoverOver).bind("mouseout",e.hoverOut).bind("click",{selectBox:a},e.click),a.bind("change",{selectBox:a,container:b},e.change))})}})(jQuery);