Уничтожить один плагин в другом плагине

Если вы предпочитаете посмотреть на работающий сайт, на котором существует проблема, см. раздел «Учетные данные» (я анимирую содержимое под блоком синего цвета «#star»):

http://176.32.230.17/apptivation.co.uk/m/home/

у меня два плагина

  1. :onscreen для воспроизведения анимации, когда целевой DIV отображается в области просмотра.
  2. Полноэкранный переворот, чтобы создать книжный эффект между разделы

Второй плагин ожидает следующую структуру разделов на одной странице, чтобы он работал:

<div class="bb-item">
<div class="content">
    <div class="scroller">
                    <!-- this is the div i want to animate -->
        <div id="star" class="inner-pad">
            some content
        </div>
    </div>
</div>
</div>

Я инициализирую экранный плагин следующим образом:

$(function() {
 setInterval(function() {
    $("#star").filter(":onScreen").addClass('animated bounceInRight');
 }, 0)                             
})

Если бы приведенный выше код был первым разделом, мой div «#star» успешно добавил бы имена классов именно так, как предполагалось на экране (плагин 1). Однако, если бы я переместил этот код в пятый раздел (например), на экране были бы добавлены имена классов еще до того, как я доберусь до (видимого) этого раздела. Именно здесь я думаю, что плагин 2 влияет на плагин 1, заставляя плагин 1 думать, что div на самом деле виден, когда это не так.

Как я могу убедиться, что экранный плагин выполняет свою работу и добавляет имена классов только тогда, когда я ТОЛЬКО в определенном разделе?

Я пытался удалить имена классов 'animated bounceInRight' перед инициализацией экранного плагина, но это не сработало. В этом файле скрипта (плагина 2) он уничтожает некоторые элементы и повторно инициализируется, когда начинается перелистывание страницы, Могу ли я сделать то же самое с экранным? Как я могу это сделать?


person egr103    schedule 22.02.2013    source источник
comment
Есть только 1 элемент со звездой id?   -  person Mark Baijens    schedule 20.08.2019


Ответы (1)


Большинство подключаемых модулей jQuery хранят новый экземпляр своего объекта в данных jQuery. Я взглянул на то, что я считаю королевским кодом слайдера - http://dimsemenov.com/plugins/royal-slider/ — и я думаю, что вы могли бы уничтожить его, напрямую сославшись на объект royalSlider.

Сначала вы захотите проверить и посмотреть, действительно ли элемент, который вы пытаетесь вызвать, имеет экземпляр royalSlider.

См. эту страницу < /а>

person pawas kr. singh    schedule 20.08.2019