2016-05-06 4 views
0

トップスクリプトへの私のスクロールが機能していないという点で、jQueryの不具合が増えています。なぜこの「スクロール・トップ・スクリプト」がタイプ・エラーを引き起こすのですか? jQueryの競合

私は、多くのスクリプトを試してみたが、それぞれの時間は、私はエラーを取得する:

TypeError: undefined is not an object (evaluating '$target.offset().top')

jQuery(document).ready(function($){ 
    $(window).scroll(function(){ 
     if ($(this).scrollTop() > 100) { 
      $('.scrollup').fadeIn(); 
     } else { 
      $('.scrollup').fadeOut(); 
     } 
    }); 
    $('.scrollup').click(function(){ 
     $("html, body").animate({ scrollTop: 0 }, 600); 
     return false; 
    }); 
}); 

これは、Wordpressのサイトで使用され、Wordpressのは、無競合モードでのjQueryをロードしています。

jQueryは本当に私の人生の瞬間です。ありがとう。

EDIT:

それは同じページにもある、この、と競合ているように見えます。私は両方を並行して作業する必要があります。

var $ = jQuery.noConflict(); 

$(document).ready(function(){ 
    $('a[href^="#"]').on('click',function (e) { 
     e.preventDefault(); 

     var target = this.hash; 
     var $target = $(target); 

     $('html, body').stop().animate({ 
      'scrollTop': $target.offset().top - 50 
     }, 900, 'swing', function() { 
      window.location.hash = target; 
     }); 
    }); 
}); 
+2

イベントは '$(ウィンドウ)'にあるので、 'this'はウィンドウなので、' $(this).scrollTop() 'はウィンドウのスクロール位置を取得しようとしています... –

+0

ああ。私はまた 'jQuery(document).ready(function($){ \t $( 'a [href^="# "]')をonにしています( 'click'、function(e){ \t e.preventDefault 。); \t VAR対象= this.hash; \t変数$ターゲット= $(ターゲット); \t $( 'HTML、本体')(停止)({ \t 'scrollTopスプライト' アニメーション:$ターゲットを。 .offset()トップ \t}、900、 'スイング'、関数(){ \t window.location.hash =目標; \t}); \t}); }); 'を同じページに表示します。 –

答えて

0

申し訳ありませんが、ここに投稿することはできません。私はコピー/あなたのコード貼り付け、それはjsfiddleに動作します。 (まだ$(ウィンドウ)を使用して): jQueryの1.12を使用してhttps://jsfiddle.net/ahy1mauc/

$(window).scroll(function(){ 
    if ($(this).scrollTop() > 100) { 
     $('.scrollup').fadeIn(); 
    } else { 
     $('.scrollup').fadeOut(); 
    } 
}); 

+0

私はまた 'jQuery(document).ready(function($){$( 'a [href^="# "]')をon( 'クリック'、function(e){e.preventDefault(); var $ target.offset()。top}、900、 'swing'、 'swing'、 ' 、function(){window.location.hash = target;});});}); 'ページ上でも。私は2つが矛盾していると思うが、それを解決する方法がわからない。 –

+0

このガイドに従ってください:[link](https://api.jquery.com/jquery.noconflict/)。 $をjqueryから解放したいのであれば、なぜ新しいエイリアスを$としてストックしますか? 'var $ = jQuery.noConflict();'。試してみたいことは、 'jQuery.noConflict(); jQuery(document).ready(function($){})'です。これを試して。 – Gonnarule

0

jQueryの互換性の問題。あなたのスクリプトでは、どこでも '$'の代わりに 'jQuery'を使用してください。

+0

'jQuery(document).ready(function($){' そのような場合はありませんか? –

関連する問題