jQuery адрес двойной загрузки при инициализации - PullRequest
4 голосов
/ 02 июня 2010

Я использую jQuery Address для загрузки своего контента, но он делает это дважды в init. Я настроил его так, что если вы перейдете в основную категорию, он загрузит первое изображение, но он делает это дважды, и я не уверен, как это остановить. Новая пара глаз будет оценена!

$.address.init(function(event) {
    $('#carousel-clip a').address();
    if(!event.pathNames[0]) {
        var url = $('#carousel-clip ul li:first a').attr('href').replace('#!/','');
        $.address.path(url);
    }
}).change(function(event) { 
    if(event.pathNames[0]) {
        $.getJSON(location.pathname + 'image/' + event.pathNames[0] + '/', function(data, textStatus, XMLHttpRequest) { handler(data); });
    }
});

Вы можете видеть, что это работает здесь

Ответы [ 2 ]

4 голосов
/ 29 июля 2010

Проблема в том, что и $ .address.path, и onHashChange-Event напрямую вызывают функцию изменения. Таким образом, $ .address.path дважды вызывает функцию изменения, поскольку она меняет хеш и, следовательно, вызывает событие onHashChange Вы можете обойти это, заменив это:

$.address.path(url[1]);

с этим:

window.location = window.location + '#' + url[1]; 

Это немного грязно, но должно работать.

2 голосов
/ 26 июля 2010

Я исправил это для меня, оказалось, что document.ready () запускался дважды. Довольно глупая ошибка, тьфу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...