Jquery - запускать функцию, даже если функция до этого не запускалась. - PullRequest
0 голосов
/ 02 ноября 2011

Это фрагмент функции toggle().У меня есть заголовок, который при щелчке заставляет заголовки, расположенные ниже, скользить вниз, создавая пространство для исчезновения содержимого заголовков, по которому щелкнули.

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

Я хочу сохранить общую структуру заголовков, скользящих вниз, ТОГДА функция постепенного появленияуволен.

$(currentHeader).next('li.header')
        .animate({ marginTop: itemHeight + 15 }, 1000, function ()
        {
            $(this).prev('ul#work-headers li').find('ul').fadeIn(500);
        });

Любая помощь будет высоко ценится.

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Я бы сказал, что есть 2 решения для этого:

Быстрое и грязное:

Добавить пустой тег LI:

<li class="header" style="display:none;"></li>

Или изменить кодзакодировать для добавления поля в UL или в некоторый div после каждой пары LI & UL.

0 голосов
/ 02 ноября 2011

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

var fadeIn= function(content) {
                    $(content).find('ul').fadeIn(500);
                }  
var next = $(currentHeader).next('li.header');

if(next.length>0) {
    next.animate({ marginTop: itemHeight + 15 }, 1000, function ()
        {
            fadeIn($(this).prev('ul#work-headers li'));
        });
}
else {
    fadeIn($(this).find('ul#work-headers li'));
}

редактировать - как идея @ Хольгера, честно говоря, лучше

...