2014-01-15 2 views
0

스크롤 후 클릭 펑션을 사용하지 않도록 설정하고 싶습니다./스크롤시 클릭 기능 사용 안 함

이 문제에 대한 해결책은 있습니까? 감사!

$(window).scroll(function() { 
    if ($(this).scrollTop() < 200) 
    { 
     $("#treest, #treest2, #treest3").click(function() {anim10();}); 
    } 
    else 
    {  
     $("#treest, #treest2, #treest3").off('click')); 
    } 
}); 
+0

'구문 에러 : 당신은 할 때마다 클릭 이벤트 리스너 수십 부착되어 – Musa

+1

예기치 않은 토큰)'당신은 당신의 창을 스크롤합니다. – user1853181

답변

1

.

대신,이 같은 그것을 시도 : 또한

var $collection = $("#treest").add("#treest2").add("$treest3"); 
$(window).scroll(function() { 
    if ($(this).scrollTop() > 200) { 
     // Removes click event listener 
     $collection.off('click')); 
    } 
    else { 
     // Check if a click event listener is attached, and if not, attaches a new one 
     if(!$collection.data('events').click.length) { 
      $collection.click(function() { 
       anim10(); 
      }); 
     } 
    } 
}); 

대신 기능 수십를 수행하는 호출 당신이 당신의 창 부착을 스크롤 할 때마다/클릭 이벤트 리스너를 분리, 그것은 클릭을 떠날 것이 현명 더 나은 성능의 (@Milind는 그의 대답에 제시된 것처럼) 청취자가, 그냥 모든 호출에 유효성을 검사 :

var $collection = $("#treest").add("#treest2").add("$treest3"); 
$collection.click(function() { 
    if ($(window).scrollTop() <= 200) 
     anim10(); 
    }); 
3

당신은 오히려 사용한다 : 당신은 당신이 당신의 예제가 작동하지 않는 이유는 당신의 창을 스크롤 할 때마다 새 클릭 이벤트 리스너를 부착하는

$("#treest, #treest2, #treest3").click(function() { 
if ($(window).scrollTop() < 200) 
anim10(); 
}); 
+0

아약스 페이지가있어서 200 이후에 클릭 기능을 사용하지 않으려 고하기 때문에 문제가 있습니다. – user3191542

+0

@ user3191542 : 위의 방법을 구현할 때 문제가 발생하지 않습니다. –