Насколько мне известно, если мы напишем код JQuery code внутри $ (document) .ready (), тогда код будет выполнен после полной визуализации DOM.
Я пытаюсь вычислить высоту div внутри $ (document) .ready (), но возвращает нулевую высоту. Но когда я запускаю тот же код в консоли браузера, он возвращает правильную высоту.
Контент загружается через Angularjs.
JQuery:
$(document).ready(function (){
// hide view more button if user bio content is less than 200 words
var userBioLength = $('.userBioText > p').html().split(" ").length;
if( userBioLength<=200){
$('.userBioOverly').addClass("hide")
$('.viewMore').addClass("hide")
var textHeight = $(".userBioText").height();
console.log(textHeight); // return 0
$('.userBioWrapper').css({height:textHeight + 10+'px'});
}
HTML:
<div class="userBioWrapper">
<div class="userBioText">
<p>
{{userInfo.bio}}
Lorem ipsum dolor sit amet consectetur adipisicing elit. Id fugiat praesentium molestias aliquam quam cupiditate officiis eligendi dolor repellendus, recusandae voluptatem. Iste aliquam itaque rem tempore officia perspiciatis natus molestiae.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Id fugiat praesentium molestias aliquam quam cupiditate officiis eligendi dolor repellendus, recusandae voluptatem. Iste aliquam itaque rem tempore officia perspiciatis natus molestiae.
</p>
</div>
<div class="userBioOverly"></div>
</div>
Мне любопытно, почему это поведение отличается. Я что-то не так делаю?