2015-07-14 6 views
1

В приложении AngularJS есть одно приложение для страницы. Вложенные вкладки. Во внутренней вкладке есть кнопка, на которой запускается какое-либо событие. Мне нужно вызвать событие щелчка этой кнопки, присутствующего на внутренней вкладке. Кнопка получает визуализацию после отображения обеих вкладок. Каков наилучший способ подождать, пока появятся вкладки и кнопка.Как заставить мою функцию javascript ждать рендеринга html-элемента

Я попытался использовать «while loop» (т. Е. Продолжать цикл до тех пор, пока идентификатор для кнопки не определен) и $ timeout (установить тайм-аут на 2-3 секунды), но оба имеют свои последствия, когда есть задержка в отображении вкладок.

Просьба предложить, если существует лучший подход.

+0

как эти DOM элементы извлекаются? используя ajax? потому что html должен быть там иначе (угловые будут заполнять только данные ..), вы могли бы объяснить весь сценарий? – jony89

+0

с использованием угловых шаблонов html. – John

ответ

0

Вы можете сделать это с JQuery: $(document).ready(callbackFn);

или родной JS:

document.addEventListener('readystatechange', function onReadyStateChange() { if (document.readyState !== "complete") return; callbackFn(); }, false);

+0

Я думаю, что это неправильно, так как, вероятно, html извлекается async, иначе будет легко – jony89

+0

Ну, в этом случае event-listener (и, возможно, готовую функцию также) можно вызвать в событии ajax, я думаю (возможно, использовать другой тип события) –

+0

как этот SPA, вышеуказанное событие уже запущено и не запускается при отображении вкладок – John

Смежные вопросы