0

我在 jQueryMobile(jQM 1.2.1) 和 PhoneGap(cordova-2.7.0) 工作。现在,我面临着 Preloader 的问题。在这里,当我们单击 Page1 的提交按钮时,就会有一些 API 被发送到服务器。在 Page2 的 Pagebeforeload 事件上,我们收集结果并传递给一个数组以在 HTML 中获取。然后第 2 页显示我们需要隐藏预加载器。但问题是当我们单击按钮加载时不起作用。

首先我们检查 jQM 默认的 Preloader。但是当它失败时。所以我手动创建了一个预加载器并在单击按钮时调用它。

function showLoading()
{
    $("body").append("<div id='overlay'></div> < img src = 'images/loading.gif' id = 'loader_image' / > ");
}

这里我展示了我的按钮点击事件代码。

$("#submit_booking_step_one").live('click', function(event) {

    // $.mobile.loading('show');
    showLoading();
    var Valresult = searchValidation()
    if (Valresult == true)
    {
        var json = 1;
        var age_driver = $('#age').val();
        var car_group = $('#car_group_list').val();
        var cmpapi = 'http://www.sampleurl.com/json/get.php?json=' + json + '&age_driver=' + age_driver'';
                ajaxForCmpList(cmpapi);
        //showLoading();
        $.mobile.changePage("#mobile_page_list_bookacar", {reverse: false, changeHash: true});
        event.preventDefault();
    }
});

有什么解决办法吗???

4

1 回答 1

0

尝试调用此脚本...

$(".ui-loader").show();

而不是 showLoading() 函数。

演示在这里... http://jsfiddle.net/yeyene/CVv2q/1/

也改成这个事件...

$("#submit_booking_step_one").on('vclick', function(e){
    // your scripts
});

查询

$('#submit_bkg').on('vclick', function(e){
    $(".ui-loader").show(); // onsubmit, show loading
    
    e.preventDefault();
    location.hash = "submitted_booking";  // another page  
      
    $.ajax({
        type: 'POST',
        url: 'get_data_source.php?qtype=new_booking',
        data: serialized,
        dataType: "json",
        success: function(data) {
            
            // your scripts for after successful submit
            
            $(".ui-loader").hide();  // hide loading back
        }
    });
});
于 2013-06-06T06:13:26.680 回答