Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   как правильно отслеживать вставку html() (https://javascript.ru/forum/jquery/33325-kak-pravilno-otslezhivat-vstavku-html.html)

bombascter 19.11.2012 14:01

как правильно отслеживать вставку html()
 
Всем добрый день. Помоги пожалуйста, поделитесь опытом. Как правильно отслеживать вставку в браузер, например методом .html(data)? Привожу скрипт:

$(element).html(data).css("max-height", $(this).height() / 2);
не будет правильно работать, так как высота будет 0, потому, что нужно определенное время для, того что-бы сработал метод .html() и браузер изменил высоту у element. Делал через setInterval (проверял, каждую милисекунду, вставлен ли элемент ). Но не думаю, что это правильное решение. Подскажите как правильно?!

Skipp 19.11.2012 14:06

maxHeight

bombascter 19.11.2012 14:14

Цитата:

Сообщение от Skipp (Сообщение 216686)
maxHeight

А что это дает?

Skipp 19.11.2012 14:26

....css("maxHeight", $(this).height() / 2);

bombascter 19.11.2012 14:36

Цитата:

Сообщение от Skipp (Сообщение 216695)
....css("maxHeight", $(this).height() / 2);

Это вариант позволит отследить вставку data в element, и только после вставки вернет реальную высоту элемента, или что?

Skipp 19.11.2012 14:45

Да стиль указываете не верно, хотя в jquery уже и так можно.
В данном случаи у вас ничего не выходит, просто потому, что в $(this).height() this это не ваш элемент, а объект window, $(element).height(), будет работать как надо.

bombascter 19.11.2012 14:52

var data = "<div>bla bla .... тут много всего </div>";

$(".content").html(data); // вставляю в див, теперь мне нужно узнать его
//новую высоту, после того как я вставил в него новый контент
$(".content").height(); // покажет не раельную высоту, а старую высоту, //до ставки контента, потому, что необходимо время что-бы контент
//вставился в див и браузер посчитал все стили и определил его
//реальную высоту.
так вот, вопрос в том, как узнать парсировал браузер ставленный в него контен или нет?

bombascter 19.11.2012 14:54

Цитата:

Сообщение от Skipp (Сообщение 216700)
Да стиль указываете не верно, хотя в jquery уже и так можно.
В данном случаи у вас ничего не выходит, просто потому, что в $(this).height() this это не ваш элемент, а объект window, $(element).height(), будет работать как надо.

здесь this как раз будет указывать не на window, а на элемент. Если я не ошибаюсь. Имею ввиду $(element).css("height", $(this).height()/2 )

Skipp 19.11.2012 15:17

Цитата:

Сообщение от bombascter
здесь this как раз будет указывать не на window, а на элемент

Цитата:

Сообщение от bombascter
Если я не ошибаюсь.

<div></div>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$("div").eq(0).html("Начальная высота перед вставкой: " + $("div").eq(0).height() + "<br/>").html($("div").eq(0).html() + "После первой вставки: " + $("div").eq(0).height() + "<br/>").css("maxHeight", $("div").eq(0).height()/2).html($("div").eq(0).html() + "После второй вставки и после того как мы её поделили: " + $("div").eq(0).height() + "<br/>");
</script>

bombascter 19.11.2012 15:26

И правда - ошибаюсь)


Часовой пояс GMT +3, время: 19:55.