[jquery-mobile] jQuery Mobile-pagebeforeshow 또는 pagebeforeceate와 함께 작동하도록 showPageLoadingMsg 가져 오기 문제
jQM이 로딩 표시기를 표시하면 $ .mobile.hidePageLoadingMsg ()로 제거되는 html 객체 (.ui-loading)에 클래스를 추가합니다. 하지만 어떤 경우에는이 클래스를 html에 추가하지 않습니다 (수동으로 추가 할 수 없기 때문에).
쉬운 (그리고 약간 더러운) 수정은 수동으로 html 객체가 아니라 본문에 클래스를 추가하는 것입니다.
$('body').addClass('ui-loading');
로딩 스피너를 제거하려면 클래스를 다시 제거하면됩니다.
$('body').removeClass('ui-loading');
-------------------텍스트 메시지를 표시하는 데 문제가있는 경우 다음과 같이 jquery mobile.js 설정 텍스트를 TRUE 파일로 변경해보십시오.
(function( $, window ) {
// DEPRECATED
// NOTE global mobile object settings
$.extend( $.mobile, {
// DEPRECATED Should the text be visble in the loading message?
loadingMessageTextVisible: **undefined**,
// DEPRECATED When the text is visible, what theme does the loading box use?
loadingMessageTheme: undefined,
// DEPRECATED default message setting
loadingMessage: undefined,
에:
(function( $, window ) {
// DEPRECATED
// NOTE global mobile object settings
$.extend( $.mobile, {
// DEPRECATED Should the text be visble in the loading message?
loadingMessageTextVisible: **true**,
// DEPRECATED When the text is visible, what theme does the loading box use?
loadingMessageTheme: undefined,
// DEPRECATED default message setting
loadingMessage: undefined,
AXL
-------------------나는 같은 문제가 있습니다. 동일한 원인인지 아닌지는 확실하지 않지만 바닥 글 도구 모음이 인라인으로 표시됩니다. 따라서 페이지 하단으로 스크롤하고로드 할 페이지를 클릭 한 다음 다음 페이지에서로드 메시지를 트리거합니다 (콘텐츠의 동적 ajax로드를 수행하고 있습니다). 로딩 메시지가없는 것처럼 보이지만 실제로는 있습니다. 그것은 단지 1700px 정도의 "상위"값을 가지고 있기 때문에 나는 그것을 보지 못합니다. 페이지 상단에있는 동일한 페이지에 대한 링크를 클릭하면 로딩 메시지가 정상적으로 표시됩니다.
jQM이 로딩 메시지 등을 유지하려는 것 같습니다. 확실하지 않다.
그래서 .. 당신의 안내가 있습니다. 다음과 같은 일을하는 것 외에는 아직 답이 없습니다.
$(".ui-loader").css({"top": "400px"});
그게 내가 할 일일 것입니다. 도움이 되었기를 바랍니다.
편집하다
이것이 제가해야 할 일입니다. 테스트를 거쳐 작동합니다. 내 ajax 호출을 시작할 때 :
$(".ui-loader").css({"display": "block", "top": "252px !important" });
ajax 호출이 완료되면 :
$(".ui-loader").css({ "display": "none" });
2 편집
죄송합니다. 몇 번 테스트 한 후 "display : block;"을 설정하고 싶지 않다는 것을 알아 냈습니다. 또는 "display : none;" .css () jQuery 함수를 사용합니다. 요소 자체에 스타일 속성을 설정하고 jQM이 원하는 작업을 재정의합니다. 대신 이렇게하십시오-통화를 시작할 때 :
$(".ui-loader").css({ "top": "252px !important" });
$.mobile.showPageLoadingMsg();
로드가 완료되면 :
$.mobile.hidePageLoadingMsg();
-------------------몇 가지 테스트를했고 프로젝트에서 시간 문제가 발생했습니다. 코드에 지연이나 오류를 삽입하면 대기 스피너가 표시되었습니다 .. 제거하고 UI와 함께 로그를 추적하면 확인할 수 있습니다. 시간이 걸리는 것은 데이터로드가 아닌 UI 렌더링입니다. 감사합니다 김
출처
https://stackoverflow.com/questions/7420023