2016-08-16 2 views
1

В JavaScript У меня есть окно изменения размера событие определеноКак подождать, когда браузер завершит оплату в javascript?

$(window).resize(function() { 

    }) 

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

Я попытался поставить тайм-аут 1 мс, но он, похоже, не работает. Если я сделаю 100 мс, то это произойдет. Но я не связываю этот метод, есть ли лучший способ?

EDIT: Функция вызывается раз, но его только, что ему нужно подождать, пока после перерисовки.

Благодаря

+3

Возможный дубликат (http://stackoverflow.com/questions/5489946/jquery-how-to-wait-for-the-end-of-resize-event-and-only-then-perform-an-ac) –

+0

Это не то, m получать множественные пожары события при изменении размера (то есть он только получает вызов один раз), но мне просто нужно подождать, пока браузер не перекроет. – omega

+0

Событие изменения размера запускается после изменения размера документа, но, по-видимому, срабатывает до того, как все перерисовки завершены. Возможно, можно использовать RequestAnimationFrame, чтобы определить, выполнен ли браузер (почти). См. Https://developer.mozilla.org/en-US/docs/Web/Events/resize и https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame – yezzz

ответ

0

Вы должны использовать document.ready как это: [? JQuery - как дождаться «конца» из «изменить размер» событие, и только затем выполнить действие]

$(document).ready(function(){ 
    $(window).resize(function() { 
    ///Your code 
    }); 
}); 
+0

Я сделал, но это не то, что я имею в виду. Перерисовывание происходит при каждом изменении размера. Итак ** внутри ** изменение размера, мне нужно как-то дождаться завершения перерисовки. – omega