Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 9th, 2012  |  syntax: None  |  size: 2.23 KB  |  hits: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. how to use multiple jquery-ui sliders as filters
  2. <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"o/>
  3. <div class="demo">
  4.     price<br />
  5.     <div id="price"></div>
  6.     quality<br />
  7.     <div id="quality"></div>
  8.     <ul id="products">
  9.         <li data-price="10" data-quality="20"> product - £10 q20</li>
  10.         <li data-price="50" data-quality="40"> product - £50 q40</li>
  11.         <li data-price="100" data-quality="80"> product - £100 q80</li>
  12.         <li data-price="150" data-quality="30"> product - £150 q30</li>
  13.         <li data-price="200" data-quality="40"> product - £200 q40</li>
  14.     </ul>
  15. </div>
  16.        
  17. function showProducts(minP, maxP, minQ, maxQ) {
  18.     $("#products li").filter(function() {
  19.         var price = parseInt($(this).data("price"), 10);
  20.         var quality = parseInt($(this).data("quality"), 10);
  21.         if(price >= minP && price <= maxP && quality >= minQ && quality <= maxQ){
  22.              $(this).show();
  23.         } else {
  24.              $(this).hide();
  25.         }
  26.     });
  27. }
  28.  
  29. $(function() {
  30.     var options = {
  31.         range: true,
  32.         min: 0,
  33.         max: 250,
  34.         values: [0, 250],
  35.         slide: function(event, ui) {
  36.             if(event.target.id = "price"){
  37.                 var minP = ui.values[0],
  38.                       maxP = ui.values[1],
  39.                       minQ = $("#quality").slider("values", 0),
  40.                       maxQ = $("#quality").slider("values", 1);
  41.              }
  42.             if(event.target.id = "quality"){
  43.                 var minP = $("#price").slider("values", 0),
  44.                       maxP = $("#price").slider("values", 1),
  45.                        minQ = ui.values[0],
  46.                        maxQ = ui.values[1];
  47.               }
  48.               alert(minP +", "+ maxP +", "+ minQ +", "+ maxQ);
  49.               showProducts(minP, maxP, minQ, maxQ);
  50.           }
  51.       };
  52.  
  53.      $("#price").slider(options);
  54.      $("#quality").slider(options);
  55.   });
  56.        
  57. change: function(event, ui) {
  58.         var minP = $("#price").slider("values", 0);
  59.         var maxP = $("#price").slider("values", 1);
  60.         var minQ = $("#quality").slider("values", 0);
  61.         var maxQ = $("#quality").slider("values", 1);
  62.         showProducts(minP, maxP, minQ, maxQ);
  63.     }