2012-03-29 3 views
1

목표 : div에있는 내용을 새로 고쳐서 사용자가 로그인하면 페이지가 동적으로 변경됩니다.jquery 모바일을 사용하여 div에 PHP 파일의 내용을 추가하는 방법

진행 : 내 첫 시도는 $("#tab_b").load("php/tabs.php #tab_b"); 이었지만 DOM을 업데이트하지 않았으므로 jquery 스타일이 적용되지 않았습니다. 그런 다음 .trigger ('create') 함수를 추가하려고 시도했습니다. $("#tab_b").trigger('create'); 이것은 단 몇 분만 스타일 깜박임을 켜고 끕니다. 그럼, 내가 기능을 테스트하기 위해 다음 코드를 사용하고 작동하는 것 같습니다으로 .Append() 함수를 시도하고이 작동합니다

$("#tab_b").html(''); 
$("#tab_b").append("<button type='submit' data-theme='a'>Test button</button>").trigger('create'); 

내가 PHP 파일에서 콘텐츠를 가져 오는되어있는 유일한 문제와 그것을 div에 추가합니다. 갱신해야

내용 : "#tab_b"

<div id="tab_b" class="content_div">  
    <?php 

    if(!isLoggedIn()) 
    { 
     ... 
    } 
    else 
    { 
     echo(" 
     <button type='submit' data-theme='a' id='logout' >Logout</button> 
     "); 
    } 
    ?> 
</div> 

어떤 생각이이 작업을 수행하는 방법에있어? 또한 개선에 대한 제안은 환영합니다. 저는 초보 프로그래머입니다.

jQuery Mobile does not apply styles after dynamically loading content

+0

언제 트리거 ('생성') 메소드를 호출합니까? –

+0

나는 $ (# tab_b) .append (..) .trigger ('create') 바로 뒤에 그것을 묶는다. – Enrico

+0

페이지가로드 된 후 페이지를 새로 고침해야한다고 생각합니다. 이벤트 API를 살펴보십시오. http://jquerymobile.com/demos/1.1.0-rc.1/docs/api/events.html –

답변

1

이 작동하지 않을 수 있습니다 :

이 질문은 내 다른 항목에서 설명 더 큰 문제를 풀려는 시도이다

$('#tab_b').live('pageinit',function(event){ 
    alert('This page was just enhanced by jQuery Mobile!'); 
}); 

내가 이벤트 API로 보일 것이다

+0

답변 해 주셔서 감사합니다. 하지만 어떻게 이것이 div의 내용을 다시로드하는지 잘 모르겠습니다. 나는 doc 파일을 읽었지만 나는 그것으로부터 어떤 현명한 것을 얻지 않을 것이다. 아마 어떤 종류의 예를 제공 할 수 있습니까? 감사 – Enrico

0

$ .ajax 함수로 데이터를 가져올 수있는 것으로 나타났습니다. 그러면 전체 페이지가 반환됩니다. 내 솔루션은 새로 고쳐야하는 콘텐츠를 새로운 PHP 페이지 tab_b.php로 옮긴 다음 거기에서로드하는 것입니다. 이것이 최선의 해결책인지 확실하지 않지만 작동합니다.

$.ajax({ 
    url: 'php/tab_b.php', 
    success: function (data) { 
      $("#tab_b").html(''); 
      $("#tab_b").append(data).trigger('create'); 
    } 
});