2016-04-10 8 views
0

私は壮大なポップアップ内でflexsliderを読み込もうとしていますが、何らかの理由でポップアップ内のスクリプトが動作しません。代理店-popup.phpインサイドajax Magnificポップアップ内でflexsliderが動作しません

<div class="container"> 

    <div class="popup-container"> 

    <?php 
    // Loop start 
    if(have_posts()): 

     while(have_posts()) : the_post(); 

     get_template_part('agency', 'popup'); 

     endwhile; 

    else : 

     echo "no agencies found"; 

    endif; 
    ?> 



    </div><!--.popup-container--> 

</div> <!--.container --> 

ポップアップがこのファイルを開くボタンをclikcingにより、

jQuery(document).ready(function($){ 

     $('.ajax-popup-link').magnificPopup({ 
      type:'ajax', 
      midClick: true, 
      overflowY: "scroll", 
      alignTop: false, 
     }); 
}); 

その後:Magnificがポップアップ

は、ワードプレスの機能wp_enqueue_script()と負荷であります

<div class="flexslider"> 
    <ul class="slides"> 
    <li> 
     <img src="slide1.jpg" /> 
    </li> 
    <li> 
     <img src="slide2.jpg" /> 
    </li> 
    <li> 
     <img src="slide3.jpg" /> 
    </li> 
    <li> 
     <img src="slide4.jpg" /> 
    </li> 
    </ul> 
</div> 

<script> 

jQuery(document).ready(function($) { 
    $(window).load(function() { 
      $('.flexslider').flexslider({ 
       animation: "slide" 
      }); 
    }); 
    }); 

</script> 

jqueryはロードされません。ページ内に追加しようとしました。wここにボタンがあり、<head></head>セクションの中にはどちらの場合も動作しません。 注:flexsliderをwp_enqueue_script()で読み込み、エンキューしたことを確認しました。

+0

はそれを実行されません - そう、ポップアップの上昇した後、あなたはflexsliderを有効にする必要があります。もう一つの解決策はiframeを上げることです。 – skobaljic

+0

どこに置いたらいいですか? – Avishay28

+0

ドキュメントの[公開イベント](http://dimsemenov.com/plugins/magnific-popup/documentation.html#api)を確認してください。 – skobaljic

答えて

0

あなたはポップアップを上げた後flexsliderを有効にする必要があります

$('.ajax-popup-link').magnificPopup({ 
    type:'ajax', 
    midClick: true, 
    overflowY: "scroll", 
    alignTop: false, 
    callbacks: { 
     open: function() { 
      $('.mfp-content .flexslider').flexslider({ 
       animation: "slide" 
      }); 
     } 
    } 
}); 

説明:AJAXを経由して挿入するスクリプトは、それを実行されません。しかし、指定されたin answers hereのように、jQuery dataType: htmlを使用すると、評価されます。このスレッドに取り組む可能性がある人には、私はこのコールバックを使用してこれを解決するために管理した

+0

私は 'magnificPopup'関数の中で' dataType:html'を使用し、元のファイルにスクリプトを挿入する必要があります(コールバックなしで初めてでした)? – Avishay28

+0

'dataType'はjQuery' ajax'メソッド用です。この場合magnificopopupの使用方法が分からないのは本当ですか? – skobaljic

0

:AJAXを経由して、スクリプトを挿入する

callbacks: {    
    ajaxContentAdded: function() { 
      $('#carousel').flexslider({ 
       animation: 'slide', 
       direction: 'vertical', 
       controlNav: false, 
       animationLoop: true, 
       slideshow: false, 
       itemWidth: 143, 
       itemMargin: 2, 
       asNavFor: '#slider' 
      }); 
      $('#slider').flexslider({ 
       animation: 'slide', 
       controlNav: false, 
       animationLoop: false, 
       slideshow: false, 
       sync: '#carousel' 
      }); 
     } 
} 
関連する問題