Hi everyone..
I am using the script below to run a rating plugin… it works on all browsers except ie6 and 7.. any help would be greatly appreciated.. thanks in advance..
$.fn.rater = function(options) {
var opts = $.extend({}, $.fn.rater.defaults, options);
return this.each(function() {
var $this = $(this);
var $on = $this.find(‘.ui-rater-starsOn’);
var $off = $this.find(‘.ui-rater-starsOff’);
opts.size = $on.height();
if (opts.rating == undefined) opts.rating = $on.width() / opts.size;
if (opts.id == undefined) opts.id = $this.attr(‘id’);
$off.mousemove(function(e) {
var left = e.clientX – $off.offset().left;
var width = $off.width() – ($off.width() – left);
width = Math.ceil(width / (opts.size / opts.step)) * opts.size / opts.step;
$on.width(width);
}).hover(function(e) { $on.addClass(‘ui-rater-starsHover’); }, function(e) {
$on.removeClass(‘ui-rater-starsHover’); $on.width(opts.rating * opts.size);
}).click(function(e) {
var r = Math.round($on.width() / $off.width() * (opts.units * opts.step)) / opts.step;
$off.unbind(‘click’).unbind(‘mousemove’).unbind(‘mouseenter’).unbind(‘mouseleave’);
$off.css(‘cursor’, ‘default’); $on.css(‘cursor’, ‘default’);
$.fn.rater.rate($this, opts, r);
}).css(‘cursor’, ‘pointer’); $on.css(‘cursor’, ‘pointer’);
});
};
$.fn.rater.defaults = {
postHref: location.href,
guid: 0,
units: 5,
step: 1,
};
$.fn.rater.rate = function($this, opts, rating) {
var $on = $this.find(‘.ui-rater-starsOn’);
var $off = $this.find(‘.ui-rater-starsOff’);
$off.fadeTo(600, 0.4, function() {
$.ajax({
url: opts.postHref,
type: “POST”,
data: ‘id=’ + opts.id + ‘&guid=’ + opts.guid + ‘&rating=’ + rating,
complete: function(req) {
if (req.status == 200) { //success
opts.rating = parseFloat(req.responseText);
$off.fadeTo(600, 0.1, function() {
$on.removeClass(‘ui-rater-starsHover’).width(opts.rating * opts.size);
var $count = $this.find(‘.ui-rater-rateCount’);
$count.text(parseInt($count.text()) + 1);
$this.find(‘.ui-rater-rating’).text(opts.rating.toFixed(1));
$off.fadeTo(600, 1);
$this.attr(‘title’, ‘Your rating: ‘ + rating.toFixed(1));
});
} else { //failure
alert(req.responseText);
$on.removeClass(‘ui-rater-starsHover’).width(opts.rating
$this.rater(opts);
$off.fadeTo(2200, 1);
}
}
});
});
};
-Carlos