2013-03-03 3 views
0

Я хочу получить значение высоты заголовка и абзаца. Поэтому, когда я изменяю свой размер, я могу установить смещение, чтобы они соответствовали друг другу, потому что они имеют абсолютный характер.jQuery height возвращает неправильное значение

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

Однако, когда я использую каждый(), он корректно работает только на первом слайде (текущем), но не на всех остальных. Хотя слайды не изменяются по размеру, когда они перемещаются в сторону.

<div class="slide-content"> 
    <h2><span class="slide-title"><?php the_title() ?></span></h2> 
    <p class="slide-text"><?php echo $text; ?></p> 

    <a href="<?php echo get_permalink($meta["page"]) ?>" class="da-link">> Jetzt Informieren</a> 
</div> 

function test() { 
    $(".slide-content").each(function() { 
     var content = $(this); 

     var title = content.find(".slide-title"); 
     var text = content.find(".slide-text"); 
     var link = content.find(".da-link"); 

     var titleheight = title.height(); 
     var textheight = text.height(); 

     text.css("top",titleheight+"px"); 
     link.css("top",titleheight+textheight+"px"); 

    }); 
} 

это - моя функция.

Значения я получаю:

title: 122 text: 54 
title: 164 text: 144 
title: 164 text: 126 

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

Функция вызывается так:

$(window).resize(function() { 
     test(); 
    }); 

Когда я проверяю с Google Chrome размеры элементов остается неизменным, когда слайд движется по сцене.

У меня были проблемы с каждым() много. Так что же это может быть?

+0

Являются ли последующие слайды добавленными плагином JS? Это потому, что если эти элементы динамически генерируются, вам придется заранее использовать '.on()', '.live()' или '.delegate()' (хотя я настоятельно рекомендую первый вариант). p/s: скрипка поможет нам визуализировать вашу проблему. Очень. Многое. – Terry

ответ

0

Убедитесь, что вы впервые применили сброс CSS.

Затем в своем CSS попробуйте дать строчную высоту в 'em' для заголовка и абзаца.