1

私はjQueryで2つのプラグインjquery.scrollToとjquery.Colorboxを使用していますが、問題が発生しています。非常に単純だと思います。

私がやりたいのは、scrollToイベントが終了した直後にカラーボックスを起動することです。

ScrollToは、実際にはonAfterの設定でコールバックをサポートし、単純なalert()メッセージで機能します。しかし、colorboxを実行する関数を作成すると、機能しません。colorboxはscrollToと一緒に実行されます(ウィンドウがスクロールし、colorbox divが開きます)。

私は次のコードを持っています:

<script type="text/javascript">
 $(document).ready(function(){
  function abreCbox(){
   $(".abrircbox").colorbox({width: "50%",inline: true, href:"#inline_example1"})
  }

  $.scrollTo('#home',{offset: {left: -100, top: -100}});

  $.localScroll({
   axis: 'xy',
   queue: true,
   duration: 1800,
   onAfter: abreCbox,
   offset: {left: -100, top: -100}
  });  
 })
</script>

onAfter関数がどのように機能するのかわからないので、助けを求めています= D

どうもありがとうございました。

4

1 に答える 1

1

あなたはこのビットのコードを持っています

function abreCbox(){
   $(".abrircbox").colorbox({width: "50%",inline: true, href:"#inline_example1"})
}

の内部。$(document).ready(function() ...つまり、ドキュメントの準備ができたときに実行されます。部分は大丈夫です、あなたはただ関数宣言を外に動かす必要があります
onAfter

//for reuse later
function abreCbox(){
 $(".abrircbox").colorbox({width: "50%",inline: true, href:"#inline_example1"})
}
$(document).ready(function(){
  $.scrollTo('#home',{offset: {left: -100, top: -100}});

  $.localScroll({
   axis: 'xy',
   queue: true,
   duration: 1800,
   onAfter: abreCbox,
   offset: {left: -100, top: -100}
  });  
 });

後で関数を再利用することを予測しない場合はabreCbox、次のように無名関数をに渡しonAfterて宣言を完全に削除する ことをお勧めします。

$(document).ready(function(){
  $.scrollTo('#home',{offset: {left: -100, top: -100}});
  $.localScroll({
   axis: 'xy',
   queue: true,
   duration: 1800,
   onAfter: function (){
       $(".abrircbox").colorbox({width: "50%",inline: true, href:"#inline_example1"});
   },
   offset: {left: -100, top: -100}
  });  
});
于 2009-11-10T22:23:04.410 に答える