raty-js
Version:
Raty - A Star Rating Plugin
635 lines (513 loc) • 69.8 kB
HTML
<!DOCTYPE html>
<html dir="ltr" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="author" content="Washington Botelho">
<meta name="description" content="A Star Rating Plugin">
<meta name="google" content="notranslate">
<meta name="keywords" content="jquery,rating,raty,voto,star,staring,classificacao,classificar,votar,plugin,javascript,library">
<meta name="robots" content="ALL">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
<title>Artigos sobre Ruby, Rails, Java, VRaptor, Python, jQuery, JavaScript, CSS e muito mais. - Washington Botelho</title>
<meta name="csrf-param" content="authenticity_token">
<meta name="csrf-token" content="vJ9+LH0W7XbiuSADVEdw9hITYLQkvubFx/ohuANnFyGef0qx7IiKBz2tnk9LrxQefQssnRfyjTqrxbu0wkRCXw==">
<link rel="stylesheet" media="screen" href="stylesheets/labs.css">
<link rel="stylesheet" href="../lib/jquery.raty.css">
<style>.functions .demo {
margin-bottom: 10px;
}
.functions .item {
background-color: #FEFEFE;
border-radius: 4px;
display: inline-block;
margin-bottom: 5px;
padding: 5px 10px;
}
.functions .item a {
border: 1px solid #CCC;
margin-left: 10px;
padding: 5px;
text-decoration: none;
}
.functions .item input {
display: inline-block;
margin-left: 2px;
padding: 5px 6px;
width: 120px;
}
.functions .item label {
display: inline-block;
font-size: 1.1em;
font-weight: bold;
}
.hint {
font-size: 16px;
padding: 5px 10px;
text-align: center;
width: 160px;
}
div.hint {
margin-top: 10px;
}
</style>
<script src="../node_modules/jquery/dist/jquery.min.js"></script><script src="../lib/jquery.raty.js"></script>
<script src="javascripts/labs.js"></script>
</head>
<body>
<div class="container">
<div role="banner" class="header">
<a class="header__title" href="https://www.wbotelhos.com/raty">jQuery Raty</a>
<div class="header__subtitle">
A Star Rating Plugin
</div>
</div>
<nav role="navigation" class="navigation">
<a title="Download vv3.0.0" class="i-file-zip" href="https://github.com/wbotelhos/raty/archive/v3.0.0.zip"></a>
<a title="Github <https://github.com/wbotelhos/raty>" class="i-github" target="blank" href="https://github.com/wbotelhos/raty"></a>
<a title="Labs <https://www.wbotelhos.com/labs>" class="i-labs" target="blank" href="https://www.wbotelhos.com/labs"></a>
<a title="Thank you! <3" class="i-heart" href="javascript:void(0);"></a>
<div class="donations">
<a target="_blank" href="https://www.patreon.com/wbotelhos/creators">Patreon</a>
<span>•</span>
<a target="_blank" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=X8HEP2878NDEG&item_name=jQuery%20Raty">Paypal</a>
</div>
</nav>
<div class="clearfix"></div>
<article>
<div class="article__body">
<h1>Default</h1>
<p>You need just to have a <code>div</code> to build the Raty.</p>
<div id="default"></div>
<div class="highlight"><pre class="highlight html"><code><span class="nt"><div></div></span>
</code></pre></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">();</span>
</code></pre></div>
<h1>Score</h1>
<p>Used when we want stars with a saved rating.</p>
<div id="score"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span> <span class="na">score</span><span class="p">:</span> <span class="mi">3</span> <span class="p">});</span>
</code></pre></div>
<h1>Score callback</h1>
<p>If you need the starting score to be based on a dynamic value, you can use a callback for it.<br>
You can pass any value for it, not necessarily a data value, for example, you can use a field value.</p>
<div id="score-callback"></div>
<div class="highlight"><pre class="highlight html"><code><span class="nt"><div</span> <span class="na">data-score=</span><span class="s">"1"</span><span class="nt">></div></span>
</code></pre></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">score</span><span class="p">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">return</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">2</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">});</span>
</code></pre></div>
<h1>Score Name</h1>
<p>Changes the name of the hidden <a href="#score" rel="nofollow">score</a> field.</p>
<div id="scoreName"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span> <span class="na">scoreName</span><span class="p">:</span> <span class="dl">'</span><span class="s1">entity[score]</span><span class="dl">'</span> <span class="p">});</span>
</code></pre></div>
<h1>Data Support</h1>
<p>You can pass any <code>data-*</code> attribute via HTML and Raty will parse it and use it as an option.</p>
<div id="data-support" data-score="3" data-score-name="teacher[teacher_categories][0][value]"></div>
<div class="highlight"><pre class="highlight html"><code><span class="nt"><div</span> <span class="na">data-score=</span><span class="s">"3"</span> <span class="na">data-score-name=</span><span class="s">"teacher[teacher_categories][0][value]"</span><span class="nt">></div></span>
</code></pre></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">();</span>
</code></pre></div>
<h1>Number</h1>
<p>Changes the number of stars.</p>
<div id="number"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span> <span class="na">number</span><span class="p">:</span> <span class="mi">10</span> <span class="p">});</span>
</code></pre></div>
<h1>Number callback</h1>
<p>You can receive the <a href="#number" rel="nofollow">number</a> of stars dynamic using a callback to set it.</p>
<div id="number-callback"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">number</span><span class="p">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">return</span> <span class="mi">3</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">});</span>
</code></pre></div>
<h1>Number Max</h1>
<p>Change the max number of stars that can be created.</p>
<div id="numberMax"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">numberMax</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span>
<span class="na">number</span><span class="p">:</span> <span class="mi">100</span>
<span class="p">});</span>
</code></pre></div>
<h1>Read Only</h1>
<p>You can prevent users from voting. It can be applied with or without a <a href="#score" rel="nofollow">score</a> and all additional stars will show the "<a href="#hints" rel="nofollow">hint</a>" stars.<br>
Move the mouse over the stars to see:</p>
<div id="readOnly"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span> <span class="na">readOnly</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span> <span class="na">score</span><span class="p">:</span> <span class="mi">3</span> <span class="p">});</span>
</code></pre></div>
<h1>Read-Only callback</h1>
<p>You can decide if the rating will be <a href="#readOnly" rel="nofollow">readOnly</a> dynamically returning <code>true</code> of <code>false</code> on callback.</p>
<div id="readOnly-callback"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">readOnly</span><span class="p">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">});</span>
</code></pre></div>
<h1>Not Rated Message</h1>
<p>If <a href="#readOnly" rel="nofollow">readOnly</a> is enabled and there is no <a href="#score" rel="nofollow">score</a>, the <a href="#hint" rel="nofollow">hint</a> "Not rated yet!" will be shown for all stars. But you can change it.<br>
Hover the mouse over the star to see:</p>
<div id="noRatedMsg"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">readOnly</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">noRatedMsg</span><span class="p">:</span> <span class="dl">"</span><span class="s2">I'm readOnly and I haven't rated yet!</span><span class="dl">"</span>
<span class="p">});</span>
</code></pre></div>
<h1>Half Show</h1>
<p>You can represent a float <a href="#score" rel="nofollow">score</a> as a half star icon.<br>
This option is just to <strong>show</strong> the half star. If you want to enable voting with half stars on mouseover, please check the option <a href="#half" rel="nofollow">half</a>.<br>
The <code>round</code> options showed below are just for the <strong>icon</strong>, the score remains a <strong>float</strong> always.</p>
<h2>Enabled</h2>
<p>The <code>round</code> rules are:</p>
<ul>
<li>Down: score <= x.25 the star will be rounded down;</li>
<li>Half: score > x.25 and < x.76 the star will be a half star;</li>
<li>Up: score >= x.76 the star will be rounded up.</li>
</ul>
<div id="halfShow-true"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span> <span class="na">score</span><span class="p">:</span> <span class="mf">1.26</span> <span class="p">});</span>
</code></pre></div>
<h2>Disabled</h2>
<p>When <code>halfShow</code> is disabled, only the option <code>full</code> (<code>.6</code>) is checked:</p>
<ul>
<li>Down: score < x.6 the star will be rounded down;</li>
<li>Up: score >= x.6 the star will be rounded up;</li>
</ul>
<div id="halfShow-false"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">halfShow</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
<span class="na">score</span><span class="p">:</span> <span class="mf">1.59</span>
<span class="p">});</span>
</code></pre></div>
<h1>Round</h1>
<p>You can customize the round values of the <a href="#halfShow" rel="nofollow">halfShow</a> option.<br>
When <code>halfShow</code> is enabled, only <code>down</code> and <code>up</code> is used for round.<br>
You can specify just the attribute you want to change and keep the others as their defaults.</p>
<div id="round"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">round</span><span class="p">:</span> <span class="p">{</span> <span class="na">down</span><span class="p">:</span> <span class="p">.</span><span class="mi">26</span><span class="p">,</span> <span class="na">up</span><span class="p">:</span> <span class="p">.</span><span class="mi">76</span> <span class="p">},</span>
<span class="na">score</span><span class="p">:</span> <span class="mf">1.26</span>
<span class="p">});</span>
</code></pre></div>
<h1>Half</h1>
<p>Enables the half star mouseover to make voting with half values possible.<br>
If you want to vote with more precision than a half value, please check the option <a href="#precision" rel="nofollow">precision</a>.</p>
<div id="half"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#star</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">half</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">hints</span><span class="p">:</span> <span class="p">[[</span><span class="dl">'</span><span class="s1">bad 1/2</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">bad</span><span class="dl">'</span><span class="p">],</span> <span class="p">[</span><span class="dl">'</span><span class="s1">poor 1/2</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">poor</span><span class="dl">'</span><span class="p">],</span> <span class="p">[</span><span class="dl">'</span><span class="s1">regular 1/2</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">regular</span><span class="dl">'</span><span class="p">],</span> <span class="p">[</span><span class="dl">'</span><span class="s1">good 1/2</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">good</span><span class="dl">'</span><span class="p">],</span> <span class="p">[</span><span class="dl">'</span><span class="s1">gorgeous 1/2</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">gorgeous</span><span class="dl">'</span><span class="p">]]</span>
<span class="p">});</span>
</code></pre></div>
<h1>Star Half</h1>
<p>Changes the name of the half star.<br>
Pay attention, when you want to specify a different icon with a different directory, you must to set the <a href="#path" rel="nofollow">path</a> option to <code>null</code> to prepending the star's original path to your path. You will then have to specify all other icons with their explicit original path.</p>
<div id="starHalf"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">half</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">starHalf</span><span class="p">:</span> <span class="dl">'</span><span class="s1">star-half-mono.png</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<p>You can change the star icons.</p>
<div id="size"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">cancelButton</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">starOff</span><span class="p">:</span> <span class="dl">'</span><span class="s1">star-off-big.png</span><span class="dl">'</span><span class="p">,</span>
<span class="na">starOn</span><span class="p">:</span> <span class="dl">'</span><span class="s1">star-on-big.png</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<h1>Click</h1>
<p>You can write a callback to handle the <a href="#score" rel="nofollow">score</a> and the click <code>event</code> on click events.<br>
You can reference the Raty element (DOM) itself using <code>this</code>.</p>
<div id="click"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">click</span><span class="p">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">score</span><span class="p">,</span> <span class="nx">evt</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">alert</span><span class="p">(</span><span class="dl">'</span><span class="s1">ID: </span><span class="dl">'</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="dl">"</span><span class="se">\n</span><span class="s2">score: </span><span class="dl">"</span> <span class="o">+</span> <span class="nx">score</span> <span class="o">+</span> <span class="dl">"</span><span class="se">\n</span><span class="s2">event: </span><span class="dl">"</span> <span class="o">+</span> <span class="nx">evt</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">});</span>
</code></pre></div>
<h1>Click Prevent</h1>
<p>If you return <code>false</code> into the callback, the click event will be prevented.</p>
<div id="click-prevent"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">click</span><span class="p">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">score</span><span class="p">,</span> <span class="nx">evt</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">alert</span><span class="p">(</span><span class="dl">'</span><span class="s1">Score will not change.</span><span class="dl">'</span><span class="p">)</span>
<span class="k">return</span> <span class="kc">false</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">});</span>
</code></pre></div>
<h1>Hints</h1>
<p>Changes the hint for each star by it position on array.<br>
If you pass <code>null</code>, the <a href="#score" rel="nofollow">score</a> value of this star will be the hint.<br>
If you pass <code>undefined</code>, this position will be ignored and receive the default hint.</p>
<div id="hints"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span> <span class="na">hints</span><span class="p">:</span> <span class="p">[</span><span class="dl">'</span><span class="s1">a</span><span class="dl">'</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="dl">''</span><span class="p">,</span> <span class="kc">undefined</span><span class="p">,</span> <span class="dl">'</span><span class="s1">*_*</span><span class="dl">'</span><span class="p">]});</span>
</code></pre></div>
<h1>Path</h1>
<p>Changes the path where your icons are located.<br>
Set it only if you want the same path for all icons.<br>
Don't mind about the last slash of the path, if you don't put it, it will be setted for you.</p>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span> <span class="na">path</span><span class="p">:</span> <span class="dl">'</span><span class="s1">assets/images</span><span class="dl">'</span> <span class="p">});</span>
</code></pre></div>
<p>Now we have the following full paths: <strong>assets/images/star-on.png</strong>, <strong>assets/images/star-off.png</strong> and so.</p>
<h1>Path Callback</h1>
<p>You can set the path dynamically using callback.</p>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">path</span><span class="p">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">return</span> <span class="dl">'</span><span class="s1">/assets/vendor/raty</span><span class="dl">'</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">});</span>
</code></pre></div>
<h1>Star Off and Star On</h1>
<p>Changes the icons.</p>
<div id="star-off-and-star-on"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">starOff</span><span class="p">:</span> <span class="dl">'</span><span class="s1">off.png</span><span class="dl">'</span><span class="p">,</span>
<span class="na">starOn</span><span class="p">:</span> <span class="dl">'</span><span class="s1">on.png</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<h1>Cancel Button</h1>
<p>Add a cancel button on the left side of the stars to cancel the <a href="#score" rel="nofollow">score</a>.<br>
Inside the <a href="#click" rel="nofollow">click</a> callback the argument code receives the value <code>null</code> when we click on the cancel button.</p>
<div id="cancelButton"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span> <span class="na">cancelButton</span><span class="p">:</span> <span class="kc">true</span> <span class="p">});</span>
</code></pre></div>
<h1>Cancel Button Hint</h1>
<p>Like the stars, the <a href="#cancelButton" rel="nofollow">cancelButton</a> button has a hint too, and you can change it.<br>
Hover the mouse over the cancel button to see:</p>
<div id="cancelButtonHint"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">cancelButton</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">cancelHint</span><span class="p">:</span> <span class="dl">'</span><span class="s1">My cancel hint!</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<h1>Cancel Button Place</h1>
<p>Changes the <a href="#cancelButton" rel="nofollow">cancelButton</a> button to the right side.</p>
<div id="cancelButtonPlace"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">cancelButton</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">cancelPlace</span><span class="p">:</span> <span class="dl">'</span><span class="s1">right</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<h1>Cancel off and Cancel On</h1>
<p>Changes the on and off icon of the <a href="#cancel" rel="nofollow">cancel</a> button.</p>
<div id="cancel-off-and-cancel-on"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">cancelButton</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">cancelOff</span><span class="p">:</span> <span class="dl">'</span><span class="s1">cancel-off.png</span><span class="dl">'</span><span class="p">,</span>
<span class="na">cancelOn</span><span class="p">:</span> <span class="dl">'</span><span class="s1">cancel-on.png</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<h1>Icon Range</h1>
<p>Is an array of objects where each one represents a custom icon.<br>
The <code>range</code> attribute is where the icon will be displayed (out of the five stars).<br>
The <code>on</code> attribute is the active icon when hovering.<br>
The <code>off</code> attribute is the default icon.</p>
<div id="iconRange"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">iconRange</span><span class="p">:</span> <span class="p">[</span>
<span class="p">{</span> <span class="na">range</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="na">on</span><span class="p">:</span> <span class="dl">'</span><span class="s1">1.png</span><span class="dl">'</span><span class="p">,</span> <span class="na">off</span><span class="p">:</span> <span class="dl">'</span><span class="s1">0.png</span><span class="dl">'</span> <span class="p">},</span>
<span class="p">{</span> <span class="na">range</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="na">on</span><span class="p">:</span> <span class="dl">'</span><span class="s1">2.png</span><span class="dl">'</span><span class="p">,</span> <span class="na">off</span><span class="p">:</span> <span class="dl">'</span><span class="s1">0.png</span><span class="dl">'</span> <span class="p">},</span>
<span class="p">{</span> <span class="na">range</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="na">on</span><span class="p">:</span> <span class="dl">'</span><span class="s1">3.png</span><span class="dl">'</span><span class="p">,</span> <span class="na">off</span><span class="p">:</span> <span class="dl">'</span><span class="s1">0.png</span><span class="dl">'</span> <span class="p">},</span>
<span class="p">{</span> <span class="na">range</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span> <span class="na">on</span><span class="p">:</span> <span class="dl">'</span><span class="s1">4.png</span><span class="dl">'</span><span class="p">,</span> <span class="na">off</span><span class="p">:</span> <span class="dl">'</span><span class="s1">0.png</span><span class="dl">'</span> <span class="p">},</span>
<span class="p">{</span> <span class="na">range</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="na">on</span><span class="p">:</span> <span class="dl">'</span><span class="s1">5.png</span><span class="dl">'</span><span class="p">,</span> <span class="na">off</span><span class="p">:</span> <span class="dl">'</span><span class="s1">0.png</span><span class="dl">'</span> <span class="p">}</span>
<span class="p">]</span>
<span class="p">});</span>
</code></pre></div>
<p>You can use an interval of the same icon jumping some number.<br>
The <code>range</code> attribute must be in an ascending order.<br>
If the value <code>on</code> or <code>off</code> is omitted then the attribute <code>starOn</code> and <code>starOff</code> will be used.</p>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">starOff</span><span class="p">:</span> <span class="dl">'</span><span class="s1">0.png</span><span class="dl">'</span><span class="p">,</span>
<span class="na">iconRange</span><span class="p">:</span> <span class="p">[</span>
<span class="p">{</span> <span class="na">range</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="na">on</span><span class="p">:</span> <span class="dl">'</span><span class="s1">1.png</span><span class="dl">'</span> <span class="p">},</span>
<span class="p">{</span> <span class="na">range</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="na">on</span><span class="p">:</span> <span class="dl">'</span><span class="s1">3.png</span><span class="dl">'</span> <span class="p">},</span>
<span class="p">{</span> <span class="na">range</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="na">on</span><span class="p">:</span> <span class="dl">'</span><span class="s1">5.png</span><span class="dl">'</span> <span class="p">}</span>
<span class="p">]</span>
<span class="p">});</span>
</code></pre></div>
<p>Now we have all off icons as <strong>0.png</strong>, icons 1 and 2 as <strong>1.png</strong>, icon 3 as <strong>3.png</strong> and icons 4 and 5 as <strong>5.png</strong>. </p>
<h1>Target</h1>
<p>Displays the <a href="#hints" rel="nofollow">hints</a> or the <a href="#cancelButtonHint" rel="nofollow">cancelButtonHint</a>.</p>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">cancelButton</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">target</span><span class="p">:</span> <span class="dl">'</span><span class="s1">#hint</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<p>Your target can be a <code>div</code>.</p>
<div id="target-div"></div>
<div id="target-div-hint" class="input hint"></div>
<div class="highlight"><pre class="highlight html"><code><span class="nt"><div</span> <span class="na">id=</span><span class="s">"hint"</span><span class="nt">></div></span>
</code></pre></div>
<p>Your target can be a <code>text</code> field.</p>
<div id="target-text"></div>
<p><input id="target-text-hint" type="text" class="input hint"></p>
<div class="highlight"><pre class="highlight html"><code><span class="nt"><input</span> <span class="na">id=</span><span class="s">"hint"</span> <span class="na">type=</span><span class="s">"text"</span> <span class="nt">/></span>
</code></pre></div>
<p>Your target can be a <code>textarea</code>.</p>
<div id="target-textarea"></div>
<p><textarea id="target-textarea-hint" class="input hint"></textarea></p>
<div class="highlight"><pre class="highlight html"><code><span class="nt"><textarea</span> <span class="na">id=</span><span class="s">"hint"</span><span class="nt">></textarea></span>
</code></pre></div>
<p>Your target can be a <code>select</code>.</p>
<div id="target-select"></div>
<p><select id="target-select-hint" class="input hint"><br>
<option value="">--</option>
<br>
<option value="bad">bad</option>
<br>
<option value="poor">poor</option>
<br>
<option value="regular">regular</option>
<br>
<option value="good">good</option>
<br>
<option value="gorgeous">gorgeous</option>
<br>
</select></p>
<div class="highlight"><pre class="highlight html"><code><span class="nt"><select</span> <span class="na">id=</span><span class="s">"hint"</span><span class="nt">></span>
<span class="nt"><option</span> <span class="na">value=</span><span class="s">""</span><span class="nt">></span>--<span class="nt"></option></span>
<span class="nt"><option</span> <span class="na">value=</span><span class="s">"bad"</span><span class="nt">></span>bad<span class="nt"></option></span>
<span class="nt"><option</span> <span class="na">value=</span><span class="s">"poor"</span><span class="nt">></span>poor<span class="nt"></option></span>
<span class="nt"><option</span> <span class="na">value=</span><span class="s">"regular"</span><span class="nt">></span>regular<span class="nt"></option></span>
<span class="nt"><option</span> <span class="na">value=</span><span class="s">"good"</span><span class="nt">></span>good<span class="nt"></option></span>
<span class="nt"><option</span> <span class="na">value=</span><span class="s">"gorgeous"</span><span class="nt">></span>gorgeous<span class="nt"></option></span>
<span class="nt"></select></span>
</code></pre></div>
<h1>Target Type</h1>
<p>You have the options of <code>hint</code> or <code>score</code>:<br>
If you choose to see the <a href="#score" rel="nofollow">score</a> instead of the <a href="#hints" rel="nofollow">hints</a> using the value <code>score</code> you will get the numerical value of the star.<br>
For the <a href="#cancelButton" rel="nofollow">cancelButton</a> the value is empty.</p>
<div id="targetType"></div>
<div id="targetType-hint" class="input hint"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">cancelButton</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">target</span><span class="p">:</span> <span class="dl">'</span><span class="s1">#hint</span><span class="dl">'</span><span class="p">,</span>
<span class="na">targetType</span><span class="p">:</span> <span class="dl">'</span><span class="s1">score</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<h1>Target Keep</h1>
<p>If you want the <a href="#score" rel="nofollow">score</a> to remain in the hint box after providing the rating, turn on this option.</p>
<div id="targetKeep"></div>
<div id="targetKeep-hint" class="input hint"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">cancelButton</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">target</span><span class="p">:</span> <span class="dl">'</span><span class="s1">#hint</span><span class="dl">'</span><span class="p">,</span>
<span class="na">targetKeep</span><span class="p">:</span> <span class="kc">true</span>
<span class="p">});</span>
</code></pre></div>
<h1>Target Text</h1>
<p><a href="#target-div" rel="nofollow">Target</a> will blank if you don't use the <a href="#targetKeep" rel="nofollow">targetKeep</a> option, after rolling the mouse away from the ratings.<br>
If you want a message to show by default you can use this option.</p>
<div id="targetText"></div>
<div id="targetText-hint" class="input hint"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">target</span><span class="p">:</span> <span class="dl">'</span><span class="s1">#hint</span><span class="dl">'</span><span class="p">,</span>
<span class="na">targetText</span><span class="p">:</span> <span class="dl">'</span><span class="s1">--</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<h1>Target Format</h1>
<p>You can choose a template to be merged with your hints and displayed in the <a href="#target-div" rel="nofollow">target</a>.</p>
<div id="targetFormat"></div>
<div id="targetFormat-hint" class="input hint"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">target</span><span class="p">:</span> <span class="dl">'</span><span class="s1">#hint</span><span class="dl">'</span><span class="p">,</span>
<span class="na">targetFormat</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Rating: {score}</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<h1>Target Score</h1>
<p>You can keep the score value inside the blank element by default or choose where to put it.<br>
If you change the score target, the default score field won't be created.<br>
This is not a <a href="#target-div" rel="nofollow">target</a> option for display only, it is the real current score data.</p>
<div id="targetScore"></div>
<p><input id="target-score" type="text" class="input hint"></p>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">targetScore</span><span class="p">:</span> <span class="dl">'</span><span class="s1">#target</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<h1>Mouseover</h1>
<p>You can handle events on mouseover.<br>
The arguments are the same as in the <a href="#click" rel="nofollow">click</a> callback.<br>
The options <a href="#target-div" rel="nofollow">target</a>, <a href="#targetFormat" rel="nofollow">targetFormat</a>, <a href="#targetKeep" rel="nofollow">targetKeep</a>, <a href="#targetText" rel="nofollow">targetText</a> and <a href="#targetType" rel="nofollow">targetType</a> are abstractions of this callback. You can do it by yourself.</p>
<div id="mouseover"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">mouseover</span><span class="p">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">score</span><span class="p">,</span> <span class="nx">evt</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">alert</span><span class="p">(</span><span class="dl">'</span><span class="s1">ID: </span><span class="dl">'</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="dl">"</span><span class="se">\n</span><span class="s2">score: </span><span class="dl">"</span> <span class="o">+</span> <span class="nx">score</span> <span class="o">+</span> <span class="dl">"</span><span class="se">\n</span><span class="s2">event: </span><span class="dl">"</span> <span class="o">+</span> <span class="nx">evt</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">});</span>
</code></pre></div>
<h1>Mouseout</h1>
<p>You can handle the action on mouseout.<br>
The arguments is the same of the <a href="#mouseover" rel="nofollow">mouseover</a> callback.</p>
<div id="mouseout"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">mouseout</span><span class="p">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">score</span><span class="p">,</span> <span class="nx">evt</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">alert</span><span class="p">(</span><span class="dl">'</span><span class="s1">ID: </span><span class="dl">'</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="dl">"</span><span class="se">\n</span><span class="s2">score: </span><span class="dl">"</span> <span class="o">+</span> <span class="nx">score</span> <span class="o">+</span> <span class="dl">"</span><span class="se">\n</span><span class="s2">event: </span><span class="dl">"</span> <span class="o">+</span> <span class="nx">evt</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">});</span>
</code></pre></div>
<h1>Precision</h1>
<p>You can get the exact position of the cursor to get a precise <a href="#score" rel="nofollow">score</a>.<br>
The score is still represented in full and half stars, but the <a href="#score" rel="nofollow">score</a> is saved as a float.<br>
When you enable this option the <a href="#half" rel="nofollow">half</a> option is automatically enabled and <a href="#targetType" rel="nofollow">targetType</a> is changed to <code>score</code>.</p>
<div id="precision"></div>
<div id="precision-hint" class="input hint"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#precision</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">cancelButton</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">cancelOff</span><span class="p">:</span> <span class="dl">'</span><span class="s1">cancel-off.png</span><span class="dl">'</span><span class="p">,</span>
<span class="na">cancelOn</span><span class="p">:</span> <span class="dl">'</span><span class="s1">cancel-on.png</span><span class="dl">'</span><span class="p">,</span>
<span class="na">path</span><span class="p">:</span> <span class="dl">'</span><span class="s1">raty/demo/images</span><span class="dl">'</span><span class="p">,</span>
<span class="na">starHalf</span><span class="p">:</span> <span class="dl">'</span><span class="s1">star-half.png</span><span class="dl">'</span><span class="p">,</span>
<span class="na">starOff</span><span class="p">:</span> <span class="dl">'</span><span class="s1">star-off.png</span><span class="dl">'</span><span class="p">,</span>
<span class="na">starOn</span><span class="p">:</span> <span class="dl">'</span><span class="s1">star-on.png</span><span class="dl">'</span><span class="p">,</span>
<span class="na">target</span><span class="p">:</span> <span class="dl">'</span><span class="s1">#precision-hint</span><span class="dl">'</span><span class="p">,</span>
<span class="na">targetKeep</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">precision</span><span class="p">:</span> <span class="kc">true</span>
<span class="p">});</span>
</code></pre></div>
<h1>Space</h1>
<p>You can remove excess space between stars.</p>
<div id="space"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#space</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span> <span class="na">space</span><span class="p">:</span> <span class="kc">false</span> <span class="p">});</span>
</code></pre></div>
<h1>Single</h1>
<p>You can specify the current star being hovered over should be illuminated, instead all preceding stars.</p>
<div id="single"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">#single</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span> <span class="na">single</span><span class="p">:</span> <span class="kc">true</span> <span class="p">});</span>
</code></pre></div>
<h1>Star Type</h1>
<p>Lets you to change the star element type. Changing it from <code>img</code> to <code>i</code>, for example, changes from an image to a glyph. There is a sample stylesheet (<code>demo/stylesheets/jquery.raty.css</code>) using a sample fonts (<code>demo/fonts/jquery.raty.[eot|svg|ttf|woff]</code>).</p>
<p>To be easier to use, we replaced the dot (.) extension to a hyphen (-), so you do not need to change the original names, just set the names to your fonts. We recommend you use the <a href="http://icomoon.io" rel="nofollow">Ico Moon</a> app which allows you to download only the relevant icons only and rename them.</p>
<div id="starType"></div>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">(</span><span class="dl">'</span><span class="s1">div</span><span class="dl">'</span><span class="p">).</span><span class="nx">raty</span><span class="p">({</span>
<span class="na">cancelButton</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">half</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
<span class="na">starType</span><span class="p">:</span> <span class="dl">'</span><span class="s1">i</span><span class="dl">'</span>
<span class="p">});</span>
</code></pre></div>
<h1>Changing the settings globally</h1>
<p>You can change any options globally <code>$.fn.raty.defaults.OPTION = VALUE;</code>. It must be called before you bind the plugin.</p>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">$</span><span class="p">.</span><span class="nx">raty</span><span class="p">.</span><span class="nx">cancelButton</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
<span class="nx">$</span><span class="p">.</span><span class="nx">raty</span><span class="p">.</span><span class="nx">path</span> <span class="o">=</span> <span class="dl">'</span><span class="s1">assets</span><span class="dl">'</span><span class="p">;</span>
</code></pre></div>
<h1>Options</h1>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">cancelButton</span><span class="p">:</span> <span class="kc">false</span>
</code></pre></div>
<p>Creates a cancel button to cancel the rating.</p>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">cancelClass</span><span class="p">:</span> <span class="dl">'</span><span class="s1">raty-cancel</span><span class="dl">'</span>
</code></pre></div>
<p>Name of cancel's class.</p>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">cancelHint</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Cancel this rating!</span><span class="dl">'</span>
</code></pre></div>
<p>The cancel button's hint.</p>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">cancelOff</span><span class="p">:</span> <span class="dl">'</span><span class="s1">cancel-off.png</span><span class="dl">'</span>
</code></pre></div>
<p>Icon used on active cancel.</p>
<div class="highlight"><pre class="highlight javascript"><code><span class="nx">cancelOn