2017-07-01 29 views
0

私は次のようなエラー持って(。評価 '$(' エントリ-コンテンツ ')(オフセット)トップ。。'):例外TypeError:未定義のオブジェクトではありません

TypeError: undefined is not an object (evaluating '$('.entry-content').offset().top')

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

jQuery(document).ready(function($) { 
console.log("Start"); 
(function($) { 
    "use strict"; 
    var dh; 
    var faded = false; 
    dh = $('.entry-content').offset().top; 
    if ($(window).width() > 1000 && $('body').hasClass('single')) 
     $(window).scroll(function() { 
      var offset = $(window).scrollTop(); 
      if (offset > 270 && faded != true) { 
       setTimeout(function() { 
        $('.adslot_1 center').fadeOut(400, function() { 
         $('.adslot_1 center').css({ 
          'position': 'static' 
         }).fadeIn(); 
        }); 
       }, 300) 
       faded = true; 
       return; 
      } 
     }) 

enter image description here ヘルプは、あなたがそれはあなたがやろうとしていることを正確に何であるかのより多くの情報を得る場合は良いだろう問題

+0

あなたのコードが行うことになっているかを説明してください。期待される結果は何ですか? – Soviut

+0

スクリプトが実行されるたびに、.entry-contentが存在しますか?そうでない場合、offsetメソッドは未定義オブジェクトを返し、topプロパティにアクセスするとエラーがスローされます。他に何かをする前にdivが存在するかどうかをチェックしてください。 – Terry

+0

このクラスはニュースページにのみ配置され、メインページのものは配置されません。したがって、メインページでエラーが発生します。どのようにそれを排除することができますか? –

答えて

0

を解決します。

しかし、$( '。class')は提供したものから、そのクラスの要素の配列を返します。そして、おそらくそのようなオブジェクトがないということを意味します。

また、正しい方法は、IDで要素を取得するか、現在のtryから取得した配列から要素をフィルタすることです。

+0

このクラスはニュースページにのみ配置され、メインページのものは配置されません。したがって、メインページでエラーが発生します。どのようにそれを排除することができますか? –

+0

まず$( '。entry-content')から配列を取得できます。次に、長さが0より大きいかどうかを確認し、ロジックを実行します。 –

0

一部の要素ではoffset.topが定義されていないため、Element.getBoundingClientRect().topを使用することを検討してください。例えば。 SVGs

More Info

プラス

The amount of scrolling that has been done of the viewport area (or any other scrollable element) is taken into account when computing the bounding rectangle. This means that the rectangle's boundary edges (top, left, bottom, and right) change their values every time the scrolling position changes (because their values are relative to the viewport and not absolute).

+0

このクラスはニュースページにのみ配置され、メインページのものは配置されません。したがって、メインページでエラーが発生します。どのようにそれを排除することができますか? –

+0

あなたは正確に何をしようとしているのか説明できますか? –

+0

このスクリプトはスクロール時に広告を添付します –

関連する問題