UNPKG

raty-js

Version:

Raty - A Star Rating Plugin

635 lines (513 loc) 69.8 kB
<!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 &lt;https://github.com/wbotelhos/raty&gt;" class="i-github" target="blank" href="https://github.com/wbotelhos/raty"></a> <a title="Labs &lt;https://www.wbotelhos.com/labs&gt;" class="i-labs" target="blank" href="https://www.wbotelhos.com/labs"></a> <a title="Thank you! &lt;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&amp;business=X8HEP2878NDEG&amp;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">&lt;div&gt;&lt;/div&gt;</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">&lt;div</span> <span class="na">data-score=</span><span class="s">"1"</span><span class="nt">&gt;&lt;/div&gt;</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">&lt;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">&gt;&lt;/div&gt;</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 &lt;= x.25 the star will be rounded down;</li> <li>Half: score &gt; x.25 and &lt; x.76 the star will be a half star;</li> <li>Up: score &gt;= 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 &lt; x.6 the star will be rounded down;</li> <li>Up: score &gt;= 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">&lt;div</span> <span class="na">id=</span><span class="s">"hint"</span><span class="nt">&gt;&lt;/div&gt;</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">&lt;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">/&gt;</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">&lt;textarea</span> <span class="na">id=</span><span class="s">"hint"</span><span class="nt">&gt;&lt;/textarea&gt;</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">&lt;select</span> <span class="na">id=</span><span class="s">"hint"</span><span class="nt">&gt;</span> <span class="nt">&lt;option</span> <span class="na">value=</span><span class="s">""</span><span class="nt">&gt;</span>--<span class="nt">&lt;/option&gt;</span> <span class="nt">&lt;option</span> <span class="na">value=</span><span class="s">"bad"</span><span class="nt">&gt;</span>bad<span class="nt">&lt;/option&gt;</span> <span class="nt">&lt;option</span> <span class="na">value=</span><span class="s">"poor"</span><span class="nt">&gt;</span>poor<span class="nt">&lt;/option&gt;</span> <span class="nt">&lt;option</span> <span class="na">value=</span><span class="s">"regular"</span><span class="nt">&gt;</span>regular<span class="nt">&lt;/option&gt;</span> <span class="nt">&lt;option</span> <span class="na">value=</span><span class="s">"good"</span><span class="nt">&gt;</span>good<span class="nt">&lt;/option&gt;</span> <span class="nt">&lt;option</span> <span class="na">value=</span><span class="s">"gorgeous"</span><span class="nt">&gt;</span>gorgeous<span class="nt">&lt;/option&gt;</span> <span class="nt">&lt;/select&gt;</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