2012-04-18 15 views
0

私は現在、2つのwordpressプラグインを組み合わせて、もう一方の内部に収まるように書き直す必要がない。プラグイン内で関数を呼び出す。 Wordpressのスタイル

私の質問は最も基本的なものです: 別のプラグインの外にある関数をどう呼び出すのですか?例えば。

1)JS/N_Rotator.js

2)JS/layerSlider.js

をそれらの二つが正しく機能:私は2つのファイルを持っています。 1つ目はバックグラウンドで回転する画像です。 2番目のコンテンツは回転するコンテンツ(タイトル、画像リンクなど)です。

私がする必要があることは、両方を同期させることです。スライダー2が回転すると、スライダー1も回転します。

いくつかの掘削を行った後、私は私はこのようなスライダー2からスライダー1を開始できることを見出した。

a('#carousel').infiniteCarousel({ anim('next'); }); 

しかし、私はエラーを取得し、そのアニメーションは、()が終了しません。そこで、スライダ1の内側に、変数の中に配置しました。

if(o.play) { 
    anim('next'); 
} 

は、次にスライダー2からそのようにそれを呼ばれる:

a('#carousel').infiniteCarousel({ play:1 }); 

でもないことすべては、その開始するたびに最初から開始しますです。一度スライドして最初に戻ります

それで、私はそれ自身で機能を呼び出す方法はありますか? これは、anim()の構造です。 (以前に作られたinfiniteCarouselというプラグインから取得)。

function anim(direction,dist) 
      { 
       // Fade left/right arrows out when transitioning 
       $('#btn_rt'+randID).fadeOut(500); 
       $('#btn_lt'+randID).fadeOut(500); 

       // animate textholder out of frame 
       $('#textholder'+randID).animate({marginBottom:(-imgHeight*o.textholderHeight)-(correctTHHeight * 2)+'px'},500);     

       //?? Fade out play/pause? 
       $('#pause_btn'+randID).fadeOut(250); 
       $('#play_btn'+randID).fadeOut(250); 



       if(direction == "next") 
       { 
        if(curr==numImages) curr=0; 
        if(dist>1) 
        { 
         borderpatrol($('#thumb'+randID+'_'+(curr+dist))); 
         $('li:lt(2)', obj).clone().insertAfter($('li:last', obj)); 
         $('ul', obj).animate({left:-imgWidth*(dist+1)},o.transitionSpeed,function(){ 
          $('li:lt(2)', obj).remove(); 
          for(j=1;j<=dist-2;j++) 
          { 
           $('li:first', obj).clone().insertAfter($('li:last', obj)); 
           $('li:first', obj).remove(); 
          } 

          $(this).css({'left':-imgWidth}); 
          curr = curr+dist; 
          $('#thumbs'+randID+' div').bind('click', thumbclick).css({'cursor':'pointer'}); 
         }); 
        } 
        else 
        { 
         borderpatrol($('#thumb'+randID+'_'+(curr+1))); 
         $('#thumbs'+randID+' div').css({'cursor':'default'}).unbind('click'); // Unbind the thumbnail click event until the transition has ended 
         // Copy leftmost (first) li and insert it after the last li 
         $('li:first', obj).clone().insertAfter($('li:last', obj)); 
         // Update width and left position of ul and animate ul to the left 
         $('ul', obj) 
          .animate({left:-imgWidth-960},o.transitionSpeed,function(){ 
           $('li:first', obj).remove(); 
           $('ul', obj).css('left',-imgWidth+'px'); 
           $('#btn_rt'+randID).fadeIn(500); 
           $('#btn_lt'+randID).fadeIn(500); 
           if(autopilot) $('#pause_btn'+randID).fadeIn(250); 
           if(autopilot) 
           { 
            $('#progress'+randID).width(imgWidth).height(pbarHeight).fadeIn(500); 
            $('#progress'+randID).fadeIn(500).animate({'width':0},o.displayTime,function(){ 
             $('#pause_btn'+randID).fadeOut(50); 
             setTimeout(function(){$('#pause_btn'+randID).fadeIn(250)},o.transitionSpeed) 
            }); 
           } 
           curr=curr+1; 
           $('#thumbs'+randID+' div').bind('click', thumbclick).css({'cursor':'pointer'}); 
          }); 
        } 
       } 
       if(direction == "prev") 
       { 
        if(dist>1) 
        { 
         borderpatrol($('#thumb'+randID+'_'+(curr-dist))); 
         $('li:gt('+(numImages-(dist+1))+')', obj).clone().insertBefore($('li:first', obj)); 
         $('ul', obj).css({'left':(-imgWidth*(dist+1))}).animate({left:-imgWidth},o.transitionSpeed,function(){ 
          $('li:gt('+(numImages-1)+')', obj).remove(); 
          curr = curr - dist; 
          $('#thumbs'+randID+' div').bind('click', thumbclick).css({'cursor':'pointer'}); 
         }); 
        } 
        else 
        { 
         borderpatrol($('#thumb'+randID+'_'+(curr-1))); 
         $('#thumbs'+randID+' div').css({'cursor':'default'}).unbind('click'); // Unbind the thumbnail click event until the transition has ended 
         // Copy rightmost (last) li and insert it after the first li 
         $('li:last', obj).clone().insertBefore($('li:first', obj)); 
         // Update width and left position of ul and animate ul to the right 
         $('ul', obj) 
          .css('left',-imgWidth*2+'px') 
          .animate({left:-imgWidth},o.transitionSpeed,function(){ 
           $('li:last', obj).remove(); 
           $('#btn_rt'+randID).fadeIn(500); 
           $('#btn_lt'+randID).fadeIn(500); 
           if(autopilot) $('#pause_btn'+randID).fadeIn(250); 
           curr=curr-1; 
           if(curr==0) curr=numImages; 
           $('#thumbs'+randID+' div').bind('click', thumbclick).css({'cursor':'pointer'}); 
          }); 
        } 
       } 
      } 

、プラグインは次のように構成されています

(function($) { 

$.fn.extend({ 
    infiniteCarousel: function(options) { 
     var defaults = { 
      defaults... 
     }; 
    var options = $.extend(defaults, options); 

     return this.each(function() { ...anim is inside here... } }); })(jQuery); 

私はプラグインを再起動することなく、関数を呼び出すことができる方法上の任意のアイデアは?

注:私はサイトへのリンクを共有できません。まだ開発中であり、クライアントは無名のままにする必要があります。あなたにライブの例を示すことはよかったでしょう。

答えて

0

JavaScriptコード内で何が起こっているのかわかりませんが、一方のスクリプトを依存したい場合は、wp_register_script()関数の依存関係として追加してください。

関連する問題