AJAX-вызов при загрузке страницы через хеш-тег в URL? - PullRequest
2 голосов
/ 31 января 2012

Я использую изотоп, вот jsfiddle: http://jsfiddle.net/desandro/DA3wF/

Или, альтернативно, настроенную мной демонстрацию: http://nerdi.net/isotope-test.html

Есть вариант filter: selector

Как я могу передать фильтр, например: index.html#green, который при загрузке страницы будет фильтровать класс .green? это возможно?

Ответы [ 2 ]

3 голосов
/ 31 января 2012
filter: (window.location.hash != '') ? '.' + window.location.hash.replace('#', '') : 'default'

Это оператор if/then, который проверяет, является ли текущий хеш пустой строкой.Если это так, то filter будет установлено на default, иначе будет установлено значение window.location.hash (минус #).

URL-адрес, такой как index.html, приведет кв filter, установленном на default, и URL-адрес, подобный этому, index.html#my-selector, приведет к filter, установленному на .my-selector.

Обновление

Причина, по которой ваш кодне работает, на самом деле не имеет ничего общего с моим кодом, но вот обновленная версия вашего кода, которую я протестировал на вашем сайте:

$filterLinks.click(function(){
    var $this = $(this);

    // don't proceed if already selected
    if ( $this.hasClass('selected') ) {
        return;
    }

    $filterLinks.filter('.selected').removeClass('selected');
    $this.addClass('selected');

    // get selector from data-filter attribute
    var selector = $this.data('option-value');

    $container'.isotope({
        filter: selector
    });
});
1 голос
/ 31 января 2012
filter: window.location.hash.replace('#', '.')

location.hash вернет "#green", мы просто заменим его точкой, чтобы получить ".green".

jsfiddle с примером того, как такжеизменить выбранную ссылку на основе хэша.

...