1

我正在使用 jQuery 中的两个插件: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"})
}

在 your$(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 回答