2014-01-21 1 views
0

준비 :자바 스크립트 리스너는 내가 다음과 같습니다 스크롤 사업부에 리스너를 넣어하려고

$(document).ready(function() { 
     $scroll = $('.generic-table') 
     $scroll.scroll(function() { 
      // if($(window).scrollTop() + $(window).height() == $(document).height()) { 
       alert("bottom!"); 
      // } 
     }); 
}); 

문제는이 사업부가의 일부가되지 않는 것입니다 원본 템플릿은 템플릿에 추가됩니다. 이후 사용자가 특정 작업을 수행합니다.

Div이 페이지 시작 부분에로드 된 경우 작동합니다.

어떻게 이런 종류의 문제를 극복 할 수 있습니까?

+0

div를 추가 할 때마다 .ready 및 in에서 코드를 이동하십시오. – DoctorMick

답변

1

.scroll()에 @ marcelosalloum이 (가) 댓글에서 올바르게 지적한대로 이벤트 위임을 사용할 수 없습니다. 실제로 요소를 만들 때 처리기를 작성해야합니다.

//Create .generic-table here. BEGIN 
Code 
//Create .generic-table here. END 

//Handle event immediately. 
$('.generic-table').scroll(function() { 
    alert("bottom!"); 
}); 
+0

명확히하기 위해, 이것은 이벤트 위임의 예입니다. 스크롤 이벤트를 수신하기 위해 문서에 이벤트를 배치하고 있습니다. 그리고 이벤트 타겟이'.generic-table' 인 경우에만 콜백을 실행하십시오. –

+0

@JeffShaver - 올바른 것입니다. – Krishna

+0

[t.niese] (http://stackoverflow.com/questions/14609120/jquery-on-scroll-doesnt-work?answertab=votes#answer-14609160)에 따르면 스크롤 이벤트는 DOM을 통해 전파되지 않으므로 대의원과 함께 사용하지 마십시오. – marcelosalloum

관련 문제