2016-07-31 3 views
0

По какой-то причине я не могу заставить полосу прокрутки появляться при инициализации через javascript, но я могу инициализировать через html.mCustomScrollbar Отключение анимации прокрутки

Полоса прокрутки предназначена для отображения внутри #popup-scroll, которая содержит php. Это все внутри галереи, при этом всплывающее окно выступает как лайтбокс для каждого элемента в цикле.

 <?php 
    $the_query = new WP_Query(array(
    'post_type' => 'post')); while ($the_query->have_posts()) : $the_query->the_post();?> 
    <?php 
     echo'<figure><a class="popup-with-zoom-anim" href="#'.$post->post_name.'">'.the_post_thumbnail().'<div class="title"><h2>'.$post->post_title.'</h2></div></a></figure>'; 

    echo'<div id="'.$post->post_name.'" class="zoom-anim-dialog mfp-hide"> 
<div id="popup-scroll">'.$content.'</div></div>'; ?> 

    <?php endwhile; wp_reset_postdata(); ?> 

Инициализация с помощью JavaScript (не работает):

<script> 
    (function($){ 
     $(window).on("load",function(){ 
      $("#popup-scroll").mCustomScrollbar({scrollInertia: 0}); 
     }); 
    })(jQuery); 
</script> 

Инициализация с помощью HTML (работ):

<div id="popup-scroll" class="mCustomScrollbar" data-mcs-theme="dark"> 
    <!-- the content --> 
</div> 

Цель состоит в том, чтобы отключить прокрутки анимации scrollInertia: 0, который только может выполняется через инициализацию javascript.

The developer site, for reference

ответ

0

Ok, так как полоса прокрутки в DIV, который появляется только один раз лайтбокс/модальное окно открывается, я должен был добавить следующее к моему сценарию:

live: true 

Итак, в полном объеме, функция javascript такова:

<script> 
    (function($){ 
     $(window).on("load",function(){ 
      $("#popup-scroll").mCustomScrollbar({ 
       scrollInertia: 0, 
       live: true 
      }); 
     }); 
})(jQuery); 
</script> 

Теперь он работает.

Смежные вопросы