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

})

私の問題は、3番目の機能を正しく機能させることです。構文の問題です。

挿入したい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

なぜあなたはこれをする必要がありますか?なぜ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 に答える
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 に答える