2015-06-27 73 views
2

我已閱讀所有關於此主題的問題和解答。這應該是一個簡單的任務,但我無法讓它工作。如何禁用點擊菜單項上的JQuery航點?

Waypoint的JQuery版本可以在頂級菜單項上,在一個頁面上正常工作。我想在點擊這些菜單項時禁用它,然後恢復它。我還沒有得到恢復部分。當我調用禁用函數時,我得到一個「TypeError:e.disable不是函數」。註釋行顯示我曾嘗試包括禁止()函數的所有方式:

var waypoints = $('section.waypoint').waypoint({ 
    handler:function(){ 
    var hash = '#'+this.element.id;  
    $('#menu-main-menu li.active').removeClass('active'); 
    $('#menu-main-menu li a[href='+ hash +']').parent('li').addClass('active'); 
    window.console.log($(window).scrollTop()); 
    if($(window).scrollTop() < 500){ 
    $('#menu-main-menu li.active').removeClass('active'); 
    } 

    //$('#menu-main-menu li a').on('click', function(){ 
    //this.disableAll(); 
    //}); 
}, 
offset: '30%', 
continuous: false 
}); 

//waypoints.disable(); 

//點擊菜單項鍊接,動畫

$('.jumbotron a, #menu-main-menu li a').on('click', function(e) { 
e.preventDefault(); 
//$(waypoints).disable(); 
//$(waypoints).disableAll(); 
//waypoints.disable(); 
//waypoints.disableAll(); 
$('#menu-main-menu li.active').removeClass('active'); 

if (location.pathname.replace(/^\//,'') === this.pathname.replace(/^\//,'') && location.hostname === this.hostname) { 
var $target = $(this.hash); 
$target = $target.length && $target || $('[name="' + this.hash.slice(1) +'"]'); 
if ($target.length) { 
var targetOffset = $target.offset().top - 45; 
$('html, body').animate({scrollTop: targetOffset}, 1000); 
} 
}  
}); 

我認識到,航點是一個數組,所以有嘗試disableAll()和迭代。沒有骰子。在此先感謝您的幫助!

回答

1
$('.jumbotron a, #menu-main-menu li a').on('click', function(e) { 
e.preventDefault(); 
$('#menu-main-menu li.active').removeClass('active'); 

//Updated Code 

$(waypoints).each(function(){ 
    this.disable(); 
}); 

if (location.pathname.replace(/^\//,'') === this.pathname.replace(/^\//,'') && location.hostname === this.hostname) { 
    var $target = $(this.hash); 
    $target = $target.length && $target || $('[name="' + this.hash.slice(1) +'"]'); 
    if ($target.length) { 
     var targetOffset = $target.offset().top - 45; 
     $('html, body').animate({scrollTop: targetOffset},{ 
      complete: function(){ 

//Updated Code 
       $(waypoints).each(function(){ 
       this.enable(); 
       }); 
      } 
     }, 1000); 
    } 
}  
}); 
+0

問題可能是由JQuery版本文檔和Noframework文檔之間的混淆造成的。 –