jQuery Mobile 클...login
jQuery Mobile 클래식 튜토리얼
작가:php.cn  업데이트 시간:2022-04-11 13:58:34

jQuery 모바일 페이지 이벤트


jQuery Mobile 페이지 이벤트

jQuery Mobile에서 페이지를 처리하는 이벤트는 4가지 범주로 구분됩니다.

  • 페이지 초기화 - 페이지 생성 전, 페이지 생성 시, 페이지 초기화 후

  • 페이지 로드/언로드 - 외부 페이지가 로드, 언로드 또는 실패할 때

  • 페이지 전환 - 페이지 전환 전 및 후

  • 페이지 변경 - 페이지가 변경되거나 실패할 때

모든 jQuery Mobile 이벤트에 대한 자세한 내용을 보려면 jQuery Mobile 이벤트 참조를 방문하세요.


jQuery Mobile 초기화 이벤트

jQuery Mobile의 일반적인 페이지가 초기화되면 3단계를 거치게 됩니다.

  • 페이지 생성 전

  • 페이지 생성

  • 페이지 초기화

이벤트 각 단계에서 실행되는 코드는 코드를 삽입하거나 조작하는 데 사용될 수 있습니다.

EventDescription
pagebeforecreate이 이벤트는 페이지가 초기화되려고 할 때와 jQuery Mobile이 페이지 개선을 시작하기 전에 시작됩니다.
pagecreate이 이벤트는 페이지가 생성되었지만 개선이 완료되기 전에 트리거됩니다.
pageinit이 이벤트는 페이지가 초기화되고 jQuery Mobile이 페이지 개선을 완료한 후에 시작됩니다.

다음 예는 jQuery Mobile에서 페이지를 생성할 때 각 이벤트가 트리거되는 시기를 보여줍니다.

Instance

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script>
$(document).on("pagebeforecreate",function(){
  alert("pagebeforecreate 事件触发 - 页面即将初始化。jQuery Mobile 还未增强页面");
});                     
$(document).on("pagecreate",function(){
  alert("pagecreate 事件触发 - 页面已经创建,但还未增强完成");
});
</script>
</head>
<body>

<div data-role="page">
  <div data-role="header">
    <h1>头部文本</h1>
  </div>

  <div data-role="main" class="ui-content">
    <p>页面已创建,并增强完成。</p>
  </div>

  <div data-role="footer">
    <h1>底部文本</h1>
  </div>
</div> 

</body>
</html>

Run Instance»

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요


jQuery 모바일 로드 이벤트

페이지 로드 이벤트는 외부 페이지에 속합니다.

외부 페이지가 DOM을 로드할 때마다 두 가지 이벤트가 트리거됩니다. 첫 번째는 페이지 전로드이고, 두 번째는 페이지 로드(성공) 또는 페이지 로드 실패(실패)입니다.

이러한 이벤트는 아래 표에 설명되어 있습니다.

Event Description
pagebeforeload페이지 로드 요청이 이루어지기 전에 실행됩니다.
pageload 페이지가 성공적으로 로드되어 DOM에 삽입된 후에 실행됩니다.
pageloadfailed이 이벤트는 페이지 로드 요청이 실패하면 트리거됩니다. 기본적으로 "페이지 로딩 오류" 메시지가 표시됩니다.

다음은 pageload 및 pagloadfailed 이벤트가 작동하는 방식을 보여줍니다.

Instance

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script>
$(document).on("pagecontainerload",function(event,data){
  alert("pagecontainerload 事件触发!\nURL: " + data.url);
});
$(document).on("pagecontainerloadfailed",function(event,data){
  alert("抱歉,被请求页面不存在。");
});
</script>
</head>
<body>

<div data-role="page">
  <div data-role="header">
    <h1>页眉文本</h1>
  </div>

  <div data-role="main" class="ui-content">
    <a href="externalpage.html">外部页面</a>
    <br><br>
    <a href="externalnotexist.html">外部页面不存在</a>
  </div>

  <div data-role="footer">
    <h1>页脚文本</h1>
  </div>
</div> 

</body>
</html>

인스턴스 실행»

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요.


jQuery 모바일 전환 이벤트

We 한 페이지가 다음 페이지로 전환될 때 이벤트 사용에서 볼 수도 있습니다.

페이지 전환에는 "이전" 페이지와 "이전" 페이지라는 두 페이지가 포함됩니다. 이러한 전환은 현재 활성 페이지("다가오는" 페이지)를 새 페이지("이전" 페이지)로 변경합니다. 더욱 동적으로 변합니다.

다음은 전환 시간이 어떻게 작동하는지 보여줍니다.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script>
$(document).on("pagebeforeshow","#pagetwo",function(){
  alert("触发 pagebeforeshow 事件 - 页面二即将显示");
});
$(document).on("pageshow","#pagetwo",function(){
  alert("触发 pageshow 事件 - 现在显示页面二");
});
$(document).on("pagebeforehide","#pagetwo",function(){
  alert("触发 pagebeforehide 事件 - 页面二即将隐藏");
});
$(document).on("pagehide","#pagetwo",function(){
  alert("触发 pagehide 事件 - 现在隐藏页面二");
});
</script>
</head>
<body>

<div data-role="page" id="pageone">
  <div data-role="header">
    <h1>页眉文本</h1>

  </div>

  <div data-role="main" class="ui-content"> 
    <p>页面一</p>
    <a href="#pagetwo">转到页面二</a>
  </div>

  <div data-role="footer">
    <h1>页脚文本</h1>
  </div>
</div> 

<div data-role="page" id="pagetwo">
  <div data-role="header">
    <h1>页眉文本</h1>

  </div>

  <div data-role="main" class="ui-content">
    <p>页面二</p>
    <a href="#pageone">转到页面一</a>
  </div>

  <div data-role="footer">
    <h1>页脚文本</h1>
  </div>
</div> 

</body>
</html>
EventDescription
pagebeforeshow은 전환 애니메이션이 시작되기 전,
pagebeforehide이 "다가오는" 페이지에서 실행됩니다.
pagehide는 전환 애니메이션이 완료된 후 "다가오는" 페이지에서 실행됩니다.
Instances

인스턴스 실행»

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요