본문 바로가기

기존카테고리/하이브리드앱

[jQuery Mobile] pagebeforehide

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

<title>제이쿼리 모바일 연습</title>

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"/>

<script src="http://code.jquery.com/jquery.min.js"></script>

</script>

<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>

<script type="text/javascript">

$(document).on("pagebeforehide", "#aPage", function(event, ui){

console.log("pagebeforehide이벤트발생: A page에서"+ui.nextPage.attr('id')+"페이지 이동전에 a page에서 동작한다.");

});


$(document).on("pagebeforeshow", "#bPage", function(event, ui){

console.log("pagebeforeshow이벤트발생:"+ ui.prevPage.attr('id')+"에서 b페이지로 전환 전에 b 페이지에서 동작한다.");

});


$(document).on("pagebeforeshow", "#externalPage", function(event, ui){

console.log("pagebeforeshow이벤트발생:"+ ui.prevPage.attr('id')+"에서 외부페이지로 전환 전에 외부페이지에서 동작한다.");

});



$(document).on("pagehide", "#aPage", function(event, ui){

console.log("pagehide이벤트발생: a페이지에서 "+ui.nextPage.attr('id') +"전환 후에 a페이지에서 동작한다.");

});


$(document).on("pageshow", "#bPage", function(event, ui){

console.log("pageshow이벤트발생: "+ui.prevPage.attr('id')+"에서 b페이지로 전환 후에 b페이지에서 동작한다.");

});


$(document).on("pageshow", "#externalPage", function(event, ui){

console.log("pageshow이벤트발생: "+ui.prevPage.attr('id')+"에서 외부페이지로 전환 후에 외부페이지에서 동작한다.");

});


//////////////////////////////


$(document).on("pagebeforehide", "#bPage", function(event, ui){

console.log("pagebeforehide이벤트발생: b page에서"+ui.nextPage.attr('id')+"페이지 이동전에 b page에서 동작한다.");

});

  $(document).on("pagebeforehide", "#externalPage", function(event, ui){

console.log("pagebeforehide이벤트발생:" +ui.prevPage.attr('id')+" 에서"+ui.nextPage.attr('id')+"페이지 이동전에 "+ui.prevPage.attr('id')+"에서 동작한다.");

});


$(document).on("pagebeforeshow", "#aPage", function(event, ui){

console.log("pagebeforeshow이벤트발생:"+ ui.prevPage.attr('id')+"에서 a페이지로 전환 전에 a 페이지에서 동작한다.");

});



$(document).on("pagehide", "#bPage", function(event, ui){

console.log("pagehide이벤트발생: b페이지에서 "+ui.nextPage.attr('id') +"전환 후에 b페이지에서 동작한다.");

});


$(document).on("pagehide", "#externalPage", function(event, ui){

console.log("pagehide이벤트발생: "+ ui.prevPage.attr('id')+"에서 "+ui.nextPage.attr('id') +"전환 후에"+ ui.prevPage.attr('id')+"에서 동작한다.");

});


$(document).on("pageshow", "#aPage", function(event, ui){

console.log("pageshow이벤트발생: "+ui.prevPage.attr('id')+"에서 a페이지로 전환 후에 a페이지에서 동작한다.");

});



</script>

        <!--

[페이지 전환 이벤트 : Page Show Hide 이벤트]


a페이지에서 b페이지로 이동을 할 때 순서


A pagebeforehide >>> B pagebeforeshow  >>> A pagehide >>> B pageshow


위의 순서는 동일파일내에서 페이지 이동하는 경우와 외부파일 페이지 이동하는 경우에도 동일하게 적용된다.


pagehide이벤트에 전달되는 객체는 ui객체이며, 이 ui 객체에는 prevPage속성이 있다.


pageshow이벤트에 전달되는 객체 ui는 nextPage속성이 있다.


따라서, prevPage, nextPage속성을 이용하여 이동 이전페이지의 정보와 이동 이후페이지의 정보를 얻을 수 있다.

      -->

</head>


<body>

<div data-role="page" id="aPage">

<div data-role="header" data-position="fixed" id="header">

<h3>Page Event</h3>

</div><!-- header  -->

<div role="main" class="ui-content">

<p>A 페이지</p>

<a data-role="button" href="#bPage">go B 페이지</a>

<a data-role="button" href="jMobile07_1.html">go to 외부 페이지로..</a>

</div><!-- main  -->



<div data-role="footer" data-position="fixed">

<h3>footer</h3>

</div><!-- footer  -->

</div><!-- page1 -->


<div data-role="page" id="bPage">

<div data-role="header" data-position="fixed">

<h3>inPage</h3>

</div>

<div role="main" class="ui-content">

<p>B 페이지</p>

<a data-role="button" href="#aPage">go A 페이지</a>

</div>

</div>



</body>

</html>







7-1


<div data-role="page" id="externalPage">

<div data-role="header" data-position="fixed">

<h3>External Page</h3>

</div>

<div role="main" class="ui-content">

<a data-rel = "back" class="ui-btn ui-corner-all ui-btn-b">A페이지로..</a>

<div id="div1" class="ui-body"></div>

</div>

</div>