2013-10-06 55 views
0

我遇到了一些問題,解決了爲什麼我的Jquery被忽略。下面是Jquery的:如何使.top和.offset一起工作

$(document).ready(function() { 
var $root = $('html, body '); 
$('a').click(function(e) { 
    var href = $.attr(this, 'href'); 
    $root.animate({ 
     scrollTop: $(href).offset.top 
    }, 500, function() { 
     window.location.hash = href; 
    }); 
    return false; 
}); 

這是我試圖去很好地滾動,如果我用.offset('top')幾乎對頁面的一部分,jQuery的,但拋出了這個錯誤:

Uncaught TypeError: Cannot use 'in' operator to search for 'using' in top

這使jquery跳躍,而不是很好地滾動。

Jquery的代碼的其餘部分:

// Responsive menu 
$(function() { 
    var pull  = $('#pull'); 
     menu  = $('nav ul'); 
     menuHeight = menu.height(); 

    $(pull).on('click', function(e) { 
     e.preventDefault(); 
     menu.slideToggle(); 
    }); 

    $(window).resize(function(){ 
     var w = $(window).width(); 
     if(w > 320 && menu.is(':hidden')) { 
      menu.removeAttr('style'); 
     } 
    }); 
}); 

});

有沒有人遇到過這種情況,並找到解決方案?

+2

如果您想使用單個'var'語句聲明多個值,那麼您應該用逗號而不是分號分隔它們。 – BYossarian

+2

...因爲使用了分號,你就結束了'var',下一個語句只是一個任務,所以你會墮入[*隱式全局的恐怖*](http:// blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html)。 –

回答

3

您正在試圖獲得功能offset的財產top

$(href).offset.top 

jQuery的對象有一個方法.offset(),其中有一個屬性.top運行的結果。 也許這就是你想要使用的?

$(href).offset().top 

我已經調查了錯誤信息,這是非常明顯的,它發生在the setOffset call jQuery中。 看起來offset功能正在調用參數"top",這是不正確的。

如果沒有所有的代碼我都無法進一步調試,但請檢查您的scrollTo參數是否正確拼寫正確,並且錯誤確實發生在代碼中的該行。

+0

我試圖使用它,但它會引發此錯誤; 「未捕獲的類型錯誤:無法讀取未定義的屬性」頂部「,並在我的響應菜單jquery下面停止。任何想法/ – MaxwellLynn

+0

@MaxwellLynn,在你的問題中,你聲稱你嘗試過'.offset('top')'。請注意,它與'.offset()。top'不同。你能證實你已經嘗試過嗎? – Denis

+0

確實我有。有任何想法嗎? – MaxwellLynn

相關問題