제목 | jquery mobile 에서 페이지생성 완료시 함수 호출 | ||
---|---|---|---|
글쓴이 | 토끼와거북 | 작성시각 | 2014/07/01 09:59:47 |
|
|||
document 생성이 완료된 후에 초기함수를 호출하고 싶습니다. 1) jquery mobile 에서는 다음과 같이 함수를 호출할 수 있는데요. $(document).on('pagecreate', function () { //함수실행 init(); }); 2) 이것을 아래의 jquery 함수 호출과 동일하게 생각했는데 실행 결과는 다릅니다. $(function(){ //함수실행 init(); }); 1)의 경우 document 생성이 완료되기 전에 실행되어 버리고, 2)의 경우 document 생성이 완료된 후 실행됩니다. jquery mobile 에서 2)의 효과를 만들려면 어떻게 해야 하는지요? <body onload="init();"> 이런식으로 해 보니 로컬에서 테스트하면 실행되는데 서버에 올리고 실행하면 실행이 안 됩니다. 페이지를 새로 고침하면 비로소 실행되는데 이것은 왜 그럴까요? |
|||
다음글 | php 변수 자바스크립트에서 사용... (5) | ||
이전글 | 태블릿 추천 좀 부탁드리겠습니다. (1) | ||
kaido
/
2014/07/01 12:02:21 /
추천
0
|
토끼와거북
/
2014/07/01 12:19:41 /
추천
0
제 얘기는 jquery mobile 의 경우
$(function(){ //함수실행 init(); }); 위와 같이 초기함수를 실행시킬 경우 documnet 의 구성요소가 로딩되기 전에 실행되어 버린다는 점입니다. PC버전 웹에서는 위와 같이 할 경우 documnet 의 구성요소가 완전히 로딩된 이후 init() 함수가 실행됩니다. PC에서처럼 모바일에서 구현을 하려고 하니 잘 안 되네요 위의 함수가 모바일에서든 PC에서든 둘 다 동작은 하는데요. 실행되는 시기는 서로 다르다는 것입니다. |
kaido
/
2014/07/01 12:24:56 /
추천
0
그럼 !function () {}(); 이거 사용해 보세요.
document 생성이 끝나고 나서 연산에 의해서 다음 실행 함수로 실행이 되는 걸로 알고 있습니다. |
토끼와거북
/
2014/07/01 12:50:22 /
추천
0
<script> !function(){ init(); }(); </script> 이렇게 하니까 실행이 안 됩니다. |
kaido
/
2014/07/01 13:21:11 /
추천
0
function init(){} <- 이것의 구성요소가 !function () {}(); 보다 위에 있어야 합니다. 사용법이 약간 까다롭습니다. |
한대승(불의회상)
/
2014/07/01 14:53:16 /
추천
0
ㅎㅎ 오묘한 자바스크립트의 세계
|
가장 기본형.
$(document).ready(function() { });
연산 방식을 이용한 즉시 실행 함수 [각각 장단점이 있음]
!function () {}();
true && function () { ... } ();
0, function () { ... } ();
~function () { ... } ();
즉시 함수 실행으로 한번 찾아보시길 권해 드립니다.