2012-08-30 4 views
0

다음은 동적으로 페이지를 만들고 향상시켜야하는 코드입니다. 비슷한 패턴은 텍스트 필드, 버튼, 그리드 뷰 등과 같은 다른 많은 종류의 작업을하고 있습니다.하지만 목록보기에서는 작동하지 않습니다..trigger ('create')는 목록보기를 만들 수 없습니다.

$(document).bind("pagebeforechange", function route(e, data) { 
    ... 
    $content = $page.children(":jqmData(role=content)"); 
    var markup = '<ul id="calendarList" data-role="listview"><li>HELLO</li></ul>'; 
    $content.html(markup); 
    $page.trigger('create'); 
    $.mobile.changePage($page); 
}); 

나는 항상 내가 항상 $의 page.trigger의 라인 ('생성')에 실패 발견, 디버깅을 통해

Cannot read property 'jQuery16409763167318888009' of undefined 

가 크롬을 사용하여 같은 오류 메시지가 얻을 것;

답변

1

해결책을 직접 찾았습니다. 나는 그러나 라인과

$page.trigger('create'); 

,

$page.page(); 
$content.find(":jqmData(role=listview)").listview(); 

를 교체하는 경우는 아직도 이유를 이해하지 않는, 잘 작동합니다. 나는 전자가 후자를 대체하는 더 새롭고 더 간단한 구문이라고 생각했다. $ page.trigger의 단일 호출 ('create'); 한 번에 전체 페이지를 향상시킬 수 있습니다. 누구든지이 두 가지의 차이점을 알고 있습니까?

관련 문제