Как я могу запустить что-то после завершения $ (document) .ready ()? - PullRequest
3 голосов
/ 13 мая 2011

Есть ли способ, чтобы ваша функция вызывалась как LAST в очереди $(document).ready(), или есть способ вызвать событие после его завершения?

Я хочу по существу увидеть, если что-тобыл уволен $(document).ready() и, если нет, выстрелил в него после защиты.Если я помещу этот код в готовый документ, то нет никакой гарантии, что он будет выполнен последним, что может привести к многократным проверкам.

Ответы [ 3 ]

5 голосов
/ 13 мая 2011

Вы можете установить глобальную переменную, когда ваша функция запущена, и проверить ее перед повторным запуском:

например.,

function myFunc()
{
    if (myFuncHasFired)
        return;
    myFuncHasFired = true;
    //your func code here
}

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

4 голосов
/ 13 мая 2011

Добавьте еще один $(document).ready() блок в конец вашего кода. jQuery выполняет их в том порядке, в котором он их видит, поэтому, если вы ставите другой блок в конце кода, он должен вызываться после завершения других.

0 голосов
/ 13 мая 2011

Это похоже на идеальный вариант использования плагина readyX: http://plugins.jquery.com/project/readyx

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

...