2013-07-23 3 views
3

데이터 집합을 표시하고 여러 이벤트 (예 : 행 클릭 이벤트, 열 클릭 이벤트)를 구독하는 자체 제작 된 자체 그리드가 있습니다. 모눈 작성 함수가 호출 될 때마다 코드의 첫 번째 행은 $ grid.empty()입니다.이 모눈은 실제로 DOM 요소의 모눈을 비울뿐만 아니라 이러한 이벤트를 바인딩 해제해야합니다. 아래의 그래프는 이벤트 리스너의 느리지 만 꾸준한 경사를 보여줍니다. 상승 추세는 그리드에로드되는 데이터와 유선 이벤트입니다. 쿼리 당 평균 10-11 개의 이벤트 리스너가 증가하고 있습니다. 끔찍한 일은 아니지만 한 시간이 지나면 응용 프로그램을 사용할 수 없게 만듭니다. 나는 뭔가를 놓치고 있거나 잘못된 길을 내려다보고 있습니까? 어떤 도움을 주셔서 감사합니다.jQuery 및 이벤트 리스너 지우기

Event Listener Graph in Google Chrome Dev Tools

상세 정보 : 내 jQuery를 함수 호출이 마지막에 변수를 삭제하지 않는 것으로 나타났습니다. 예 :

$.fn.myCustomFunction = function(parm) { var grid = this; {some more code, AJAX call }; 

끝에 grid = null이 필요합니다. 그러나 문맥 때문에, 그것은 내 눈금을 완전히 비 웁니다.

+1

나는 이런 일이 왜 모르겠어요,하지만 당신은 [()'에'] (http://api.jquery.com/on/) 사용으로 보일 수 있습니다 위임을 사용하면 청취자는 한 번만 바인딩하면됩니다. –

+0

이벤트가 단계별로 구성되어 있습니까? 일부 이벤트 리스너 전달을 중지해야 할 수도 있습니다. – DevlshOne

+0

분명히 여기에서 위임을 사용해야합니다 –

답변

1

사용하여 대표 :

$grid.on('click','tr',function(){ 
    //code stuff here 
});