티스토리 뷰

jQueryMobile 에서 이벤트가 2번씩 발생할때가 있습니다. 

( jQuery Mobile 의 페이지 관리 특성에 따라 특정 오브젝트에 이벤트가 중복해서 들어 갈수 있습니다. )


개발 로직에 따라서 피해 갈수도 있지만 정말 ... 어쩔수 없는경우 중복 이벤트를 해결하는 방법으로 .off() 를 이용하실수 있습니다.



오브젝트에 이벤트를 연결하는 .bind 전에 ( 혹은 .click .mouseover 등등... ) .off 를 넣어 주실수 있습니다. 간단하게 보자면


	$(".logo").bind("touchstart",function(){	
		if(btnStatus == 'true'){		
			var id = $.mobile.activePage.attr('id');
			if(id != "MAIN"){
				$(".uiBlock").fadeTo(0,0.5);
					$.mobile.changePage( "main.html", {
					  transition: "slidefade",
					  reverse: true,
					  changeHash: false,
					  type: "get",
					  reloadPage : true 
					});				
			}	
		}	
	});	




 위의 코드는 .logo 를 눌럿을때 페이지가 메인페이지로 가는 액션입니다. 위와 같은 함수에서 만약 2번 액션이 발생하는 일이 벌어 진다면 ( 어떤 상황 때문에? .... ) 아래와 같이 .off() 를 넣어 동일 오브젝트에 2번의 액션이 들어가지 않게 해줄수 있습니다.


	$(".logo").off().bind("touchstart",function(){	
		if(btnStatus == 'true'){		
			var id = $.mobile.activePage.attr('id');
			if(id != "MAIN"){
				$(".uiBlock").fadeTo(0,0.5);
					$.mobile.changePage( "main.html", {
					  transition: "slidefade",
					  reverse: true,
					  changeHash: false,
					  type: "get",
					  reloadPage : true 
					});				
			}	
		}	
	});	


공유하기 링크
댓글