我有一个页面,当你滚动它时,对象(容器......)变得可见。 我也有项目。所以当你点击其中一个时,我的页面会向上滚动。我想禁用之前告诉过的那个功能(显示,而不是禁用滚动!)。
$(document).ready(function(){
var offsetActivity = (1);
var wScroll = ($(window).scrollTop());
var wHeight = ($(window).innerHeight());
var thirdHeight = (wHeight/1.3);
$('.secondic > .row > a > .one-half > p').click(function(offsetActivity){
var offsetActivity = (0);
var projBack = $(this).parent().css('background-image');
var parent = $(this).parent().attr('id');
var textAbout = $('#'+ parent +' > p.about-photo').text();
$('header').css('background-image', ''+ projBack +'');
$('header > .headerCont > h5').replaceWith('<h5>'+ textAbout +'</h5>');
setTimeout(function(){
$('.container').removeClass('offset-done');
$('.container').children().removeClass('offset-done');
}, 2000);
});
if(offsetActivity = (1)){
$(window).scroll(
function(){
var wScroll = ($(window).scrollTop());
var wHeight = ($(window).innerHeight());
var thirdHeight = (wHeight/1.3);
console.log(wHeight, wScroll, thirdHeight);
if(wScroll > (($('.container').offset().top)-thirdHeight)){
$('.container').addClass('offset-done');
}
if(wScroll > (($('.window').offset().top)-thirdHeight)){
$('.window').addClass('offset-done');
}
});
});
那么当我点击我的P时如何禁用该功能? 此外,我希望能够在关闭项目后再次打开它
答案 0 :(得分:3)
您可以使用off()
在jquery中取消设置事件处理程序。
.off()方法删除附加的事件处理程序 。上()。请参阅有关委托和直接绑定事件的讨论 该页面了解更多信息。不带参数调用.off() 删除附加到元素的所有处理程序。特定事件处理程序 可以通过提供事件名称的组合来删除元素, 名称空间,选择器或处理函数名称。
在您的情况下,您应该使用$(window).off('scroll');
从窗口对象中删除滚动事件的事件处理程序。
答案 1 :(得分:2)
在click
功能中,使用$window.off('scroll');
或$window.unbind('scroll');
答案 2 :(得分:1)
使用jquery fucntion .off
您需要有效,然后使用.on
$(window).on( 'scroll', 'body', function(){
...
});
点击功能
$(window).off( 'scroll', 'body');