2014-09-26 11 views
0

У меня есть фильтрационная система, которая фильтрует данные по категориям,Фильтровать по URL-адресу?

Могу ли я фильтровать эту кнопку без нажатия кнопки, но напрямую используя URL-адрес «domain.com/?data-filter=2» ???

  $('[data-sort-name]').click(function() { 
       var name = $(this).attr('data-sort-name'); 
       var type = $(this).attr('data-sort-type'); 
       console.log(name + ' ' + type) 

       $('#main>a').sortElements(function(a, b) { 
        var av, bv; 
        av = ($(a).attr('data-' + name)); 
        bv = ($(b).attr('data-' + name)); 
        console.log(av + '///' + bv); 
        return (
          isNaN(av) || isNaN(bv) ? 
          av >= bv : +av >= +bv 
          ) ? 
          type == '>' ? -1 : 1 : 
          type == '>' ? 1 : -1; 
       }); 
      }); 
      $('[ data-filter]').click(function() { 
       $('[ data-filter]').removeClass('active'); 
       var type = $(this).addClass('active').attr('data-filter'); 
       if (type == 'all') { 
         $('#main>a').css('display','block');       
       } else { 
       $('#main>a[data-cat]').each(function() { 
        $(this).css('display', $(this).attr('data-cat').indexOf(type) != -1 ? 'block' : 'none') 
       }) 
      } 
      }); 
     });` 

здесь #menu

   <div class="menu-button"> 


          <a type="button" data-filter="all" class="btn" >ALL</a> 
          <a type="button" data-filter="2" class="btn">Category 1</a> 
          <a type="button" data-filter="3" class="btn">Category 2</a> 

       </div> 

ответ

0

Да, вы можете прочитать в том месте документа, который означает, что вы можете разобрать жала запроса или полный URL, если это необходимо для

function getUrlVars() 
{ 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
    for(var i = 0; i < hashes.length; i++) 
    { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
    } 
    return vars; 
} 

ref: jquery get querystring from URL

EDIT: implemen ставляют:

var $vars = getUrlVars(); 
//this will emulate a user click on the right filter 
$('a[data-filter=' + $vars['data-filter'] + ']').click(); 
+0

спасибо, так что я могу, мне нужно изменить код? действительно не проф JS, например? – Hobbycoder

+0

в соответствии с запросом, пример того, как получить строку запроса vars – DarkMukke

+0

и добавил реализацию, которая просто эмулирует щелчок, поэтому не нужно менять код – DarkMukke

0

на стороне клиента, вы можете использовать window.location.search, чтобы получить ?data-filter=2 строку и манипулировать документ соответствующим образом.

Другой вариант заключается в том, чтобы написать сторону сервера переменных JS, например. в PHP:

<script> 
    ... 
    var myfilter = '<?php print $filter ?>'; 
    ... 
</script> 
Смежные вопросы