点击后如何禁用JavaScript功能?

时间:2015-10-07 19:07:20

标签: javascript jquery html css

我有一个页面,当你滚动它时,对象(容器......)变得可见。 我也有项目。所以当你点击其中一个时,我的页面会向上滚动。我想禁用之前告诉过的那个功能(显示,而不是禁用滚动!)。

$(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时如何禁用该功能? 此外,我希望能够在关闭项目后再次打开它

3 个答案:

答案 0 :(得分:3)

您可以使用off()在jquery中取消设置事件处理程序。

  

.off()方法删除附加的事件处理程序   。上()。请参阅有关委托和直接绑定事件的讨论   该页面了解更多信息。不带参数调用.off()   删除附加到元素的所有处理程序。特定事件处理程序   可以通过提供事件名称的组合来删除元素,   名称空间,选择器或处理函数名称。

来自jquery api:http://api.jquery.com/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');