2

外部の*.phpファイルからdivコンテンツをロードするページがあります。すべてが完璧に機能しますが、ロードされたページでズームプラグインを使用したい場合、機能しません。

私のページ構造:

<div id="wrapper">
<img id="zoom" src="example.jpg"/> /**zoom plugin works here**/
  <a href="external_content">button which onclick load external content</a>
  <div id="external_content">
     <p>a lot of text here</p>
     <img id="zoom2" src="example2.jpg"/> /**zoom plugin doesn't work here**/
  </div>
</div>

問題は、ページが読み込まれた後にスクリプトが実行されないことだと思います。私はこのサイトでたくさんの例を読みましたが、どれも私を助けませんでした

これが私の.htmlファイルです

 <html>
     <head>
        <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
        <script type="text/javascript" src="js/ajax.js"></script>
        <script type="text/javascript" src="http://www.dynamicdrive.com/dynamicindex4/ddpowerzoomer.js"></script>
        <script type="text/javascript">
         jQuery(document).ready(function($){
           $('#zoom').addpowerzoom();
           $('#zoom2').addpowerzoom();
         });
        </script> 
     <head>
    </html>

外部コンテンツをロードするメインスクリプトはここにあります

jQuery.noConflict()
jQuery(document).ready(function() {
    var hash = window.location.hash.substr(1);
    var href = jQuery('#nav li a').each(function(){
            var href = jQuery(this).attr('href');
        if(hash==href.substr(0,href.length-4)){

            var toLoad = hash+'.html #content_low'+divId;
            jQuery('#content'+divId).load(toLoad);
        }                                           
    });

    jQuery('#nav li a').click(function(){
        divId = jQuery(this).parents('li').attr('id');
        var toLoad = jQuery(this).attr('href')+' #content_low'+divId;

        jQuery('#content'+divId).slideUp(500,loadContent);

        function loadContent() {
            jQuery('#content'+divId).load(toLoad,showNewContent)
        }
        function showNewContent() {
            jQuery('#content'+divId).delay(200).slideDown(800);

            jQuery("#urun_ac").fadeOut(100);


        }
        return false;

    });
});
4

1 に答える 1

0

コールバック関数内でズーム関数を再度呼び出す必要があります。

function showNewContent() {
    jQuery('#content'+divId).delay(200).slideDown(800);

    jQuery("#urun_ac").fadeOut(100);

    $('#zoom').addpowerzoom();
    $('#zoom2').addpowerzoom();

}
于 2013-03-27T09:55:23.613 に答える