функция готовности jquery не выполняется - PullRequest
1 голос
/ 12 ноября 2010

У меня есть некоторые javascript, помещенные внутри функции jquery $ (document) .ready. Он ищет привязку в URL, а затем запускает отдельную функцию для отображения соответствующего содержимого.

Код выполняется, если я помещаю предупреждение внутри оператора if где-то, но не запускается иначе. Я сохранил все имена якорей в массиве anchorNameList и проверяю, существует ли этот якорь в URL.

Я хочу, чтобы функция запускалась только при начальной загрузке страницы, поэтому я устанавливаю значение по умолчанию для currentAnchor равным 1000 и изменяю его на каждой итерации.

        if (currentAnchor == 1000 && document.location.hash.substring(1)) {
        var checkForThisAnchor = document.location.hash.substring(1);
        for (var j=0; j < anchorNameList.length; j++) {
            if (anchorNameList[j] == checkForThisAnchor) {
                expandMe(j);
            }
        }
    }

Ответы [ 2 ]

0 голосов
/ 16 ноября 2010

Я переключил событие onload с документа jQuery document.ready на window.ready. Это работало должным образом около 30% времени, так что это определенно была проблема времени. Казалось, что основная функция JavaScript на странице, которая извлекает элементы списка, работает медленно. Я просто переместил всю эту расширяющую функцию в конец этой функции извлечения списка, чтобы она просто работала линейно.

0 голосов
/ 12 ноября 2010

По моему опыту, когда проблема с JavaScript волшебным образом решается путем добавления где-нибудь безобидного оповещения (), источником проблемы обычно является асинхронный запрос.

При отсутствии оповещения асинхронный запрос еще не завершен.Но, добавив предупреждение, у него есть шанс завершить работу и, следовательно, позволить вашему коду пройти по другому пути, чем тот, на который он пришел бы без ответа на полный асинхронный вызов.

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