2012-03-02 31 views
5

khi sử dụng điện thoại di động jquery, và bạn tải một trang không hợp lệ, một thông báo lỗi được báo cáo một cách thanh lịch cho thấy trang tải không thành công (sau đó mờ dần). Kiểm tra hình ảnh đính kèm.jquery mobile - cách sử dụng "hộp thoại báo cáo lỗi"

tôi muốn sử dụng ui này để báo cáo thông báo lỗi tùy chỉnh của riêng tôi và tạo hoạt ảnh cho họ theo cách thực hiện. bất kỳ ai có kinh nghiệm làm điều này?

tôi muốn báo cáo một số lỗi mà không sử dụng hộp thoại và phương pháp này có vẻ phù hợp. Điều này có thể được thực hiện bằng cách sử dụng jquery và nếu vui lòng hiển thị mã. enter image description here

+0

Câu hỏi này sẽ giúp bạn: http://stackoverflow.com/questions/8267159/jquery-mobile-how-to-invoke-this-default-error-loading-page-message –

Trả lời

10

Trong phiên bản 1.1.0 RC mới nhất bạn có thể sử dụng $.mobile.showPageLoadingMsg để hiển thị các thông báo lỗi tùy chỉnh:

// show error message 
$.mobile.showPageLoadingMsg($.mobile.pageLoadErrorMessageTheme, $.mobile.pageLoadErrorMessage, true); 

// hide after delay 
setTimeout($.mobile.hidePageLoadingMsg, 1500); 
+0

im bằng cách sử dụng jquery.mobile-1.0 .1.min.js và không thành công. chỉ quay và hiển thị tải, lemme tìm phiên bản –

+0

Với 1.0.1 bạn cần xem câu trả lời của JackieChiles được đăng dưới dạng nhận xét cho câu hỏi của bạn. –

+0

Sir Lojik, hãy thử thêm: $ .mobile.loadingMessageTextVisible = true; cho dự án của bạn ... điều đó sẽ cho phép bạn hiển thị văn bản trên các tin nhắn – BorisD

1

Bạn có thể sử dụng cho ẩn div lỗi:

div.ui-loader.ui-overlay-shadow { display: none !important; } 
2

Tôi đã có vấn đề tương tự. Tôi cần hiển thị lỗi xác thực sau khi xác thực biểu mẫu được gửi. Vì vậy, tôi đã viết mã này:

function showErrorMessage(message, $container, delay) { 
    $err = $('<div/>', { 
     id: 'error_message' 
    }); 
    $err.attr('data-role', 'popup'); 
    $err.attr('data-theme', 'e'); 
    $err.attr('data-overlay-theme', 'a'); 
    $err.attr('data-position-to', 'window'); 
    $err.addClass('ui-content'); 
    $err.text(message); 

    $container.children().detach(); 
    $container.append($err); 

    $err.popup(); 
    $err.popup("open"); 

    if(delay > 0) { 
     setTimeout(function() { 
      $err.popup("close"); 
     }, delay); 
    } 
} 

Nó cho thấy tin nhắn này: enter image description here

+0

chức năng này được sử dụng như thế nào? – Smith

+0

Trước hết - bạn phải nhập jQm vào tệp html của mình. Sau đó, nếu xảy ra sự cố, chỉ cần gọi 'showErrorMessage (" uuups! ", $ ('# Error'), 1000); ' và cửa sổ bật lên này sẽ xuất hiện trong một giây. Tôi không chắc chắn nếu có cái gì đó để làm, bởi vì tôi đã không nhìn thấy dự án này kể từ tháng –

2

Một giải pháp đơn giản có thể là:

Cách sử dụng
function show_error_message(message, delay) { 
    $.mobile.loading('show', 
        { theme: "e", text: (message || 'ERROR'), 
         textonly: true, textVisible: true }); 
    setTimeout(function() { 
     $.mobile.loading('hide'); 
    }, ((delay && delay > 0) ? delay : 1000)); 
} 

:

show_error_message("Wow!!!", 1500); 

Thông điệp Wow!!! sẽ được hiển thị ở trung tâm của cửa sổ.

+0

Điều này dường như làm việc cho tôi trong jqm 1.4. Câu trả lời được chấp nhận dường như không hoạt động. – bowerm

Các vấn đề liên quan