0

您好……我在使用 jQuery 缩略图滚动器时遇到了问题。它与 Fancybox 和我一直在使用的基于 onload 事件的另一个脚本发生冲突。我发现这个函数可以让 simon wilson 触发多个 onload 事件:


function func1() {
  alert("This is the first.");
}
function func2() {
  alert("This is the second.");
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
addLoadEvent(func1);
addLoadEvent(func2);
addLoadEvent(function() {

I WANT TO INSERT THE FOLLOWING JQUERY FUNCTION HERE

})

我现在的问题是让第三个功能正常工作。这是一个语法问题。

这是我要插入的 jQuery:

jQuery.noConflict();
(function($){
window.onload=function(){ 
    $("#tS3").thumbnailScroller({ 
        scrollerType:"hoverPrecise", 
        scrollerOrientation:"vertical", 
        scrollSpeed:2, 
        scrollEasing:"easeOutCirc", 
        scrollEasingAmount:800, 
        acceleration:4, 
        scrollSpeed:800, 
        noScrollCenterSpace:10, 
        autoScrolling:0, 
        autoScrollingSpeed:2000, 
        autoScrollingEasing:"easeInOutQuad", 
        autoScrollingDelay:500 
    });
}
})(jQuery);

任何建议都非常感谢!

4

2 回答 2

1

尝试这个:

function func1() {
  alert("This is the first.");
}
function func2() {
  alert("This is the second.");
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
addLoadEvent(func1);
addLoadEvent(func2);
addLoadEvent(function() {
    $("#tS3").thumbnailScroller({ 
        scrollerType:"hoverPrecise", 
            scrollerOrientation:"vertical", 
            scrollSpeed:2, 
            scrollEasing:"easeOutCirc", 
            scrollEasingAmount:800, 
            acceleration:4, 
            scrollSpeed:800, 
            noScrollCenterSpace:10, 
            autoScrolling:0, 
            autoScrollingSpeed:2000, 
            autoScrollingEasing:"easeInOutQuad", 
            autoScrollingDelay:500 
        });
})

你的问题是你试图添加的函数是window.onload用它自己的函数专门覆盖的,而不是像它本来的那样附加自己。

于 2012-04-27T01:29:03.263 回答
1

为什么需要这样做?为什么你需要onload像这样对处理程序进行排队?既然您已经在使用 jQuery,为什么还要使用本机处理程序呢?

function func1() { ... }
function func2() { ... }
function thumbScroller() {
$("#tS3").thumbnailScroller({ 
        scrollerType:"hoverPrecise", 
        scrollerOrientation:"vertical", 
        scrollSpeed:2, 
        scrollEasing:"easeOutCirc", 
        scrollEasingAmount:800, 
        acceleration:4, 
        scrollSpeed:800, 
        noScrollCenterSpace:10, 
        autoScrolling:0, 
        autoScrollingSpeed:2000, 
        autoScrollingEasing:"easeInOutQuad", 
        autoScrollingDelay:500 
    });
}

现在将它们统称为

jQuery(document).ready(function() {
    func1();
    func2();
    thumbScroller();
});
于 2012-04-28T03:39:42.250 回答