Javascript 数据本机菜单=”时PhoneGap Jquery Mobile Ajax回调不起作用;假;

Javascript 数据本机菜单=”时PhoneGap Jquery Mobile Ajax回调不起作用;假;,javascript,jquery,cordova,jquery-mobile,Javascript,Jquery,Cordova,Jquery Mobile,我有一个在Jquery移动框架上运行的phonegap应用程序。我有许多组合框(选择框),它们在更改时触发ajax查询。使用本机菜单时,代码工作正常。但是,当我切换到data native menu=“false”时,代码无法执行回调,这发生在我的android设备上,而不是在模拟器或浏览器上。由于某些原因,我无法使我的设备在调试模式下工作 代码到达on change事件时,它将到达$.ajax中的beforeSend函数,但它从未完成/出错。我甚至尝试添加一个隐藏字段,并使用它来触发事件,这样

我有一个在Jquery移动框架上运行的phonegap应用程序。我有许多组合框(选择框),它们在更改时触发ajax查询。使用本机菜单时,代码工作正常。但是,当我切换到data native menu=“false”时,代码无法执行回调,这发生在我的android设备上,而不是在模拟器或浏览器上。由于某些原因,我无法使我的设备在调试模式下工作

代码到达on change事件时,它将到达$.ajax中的beforeSend函数,但它从未完成/出错。我甚至尝试添加一个隐藏字段,并使用它来触发事件,这样它肯定位于正确的页面上,而不是停留在弹出窗口上

I'll try and make a jsfiddle.

$(document).delegate('#p1', 'pageshow', function () {

        $("#aS").change(function(){
            alert('going to change');
            getAjax('',{},function(){
                alert('got callback');
            });
        });
    });
function getAjax(request,datain,callback){
    $.mobile.showPageLoadingMsg();  
    $.ajax({
        type: "GET",
        url: 'http://open.live.bbc.co.uk/wurfldemi/network.jsonp?callback=?'+request,
        //  async: false,
        data: datain,
        beforeSend: function(x) {
            if(x && x.overrideMimeType) {
                x.overrideMimeType("application/j-son;charset=UTF-8");
            }
        },
        dataType: "jsonp",
        success: function(data){
            $.mobile.hidePageLoadingMsg();  

                callback(data);
        },
        error: function (xhr, ajaxOptions, thrownError) {
            $.mobile.hidePageLoadingMsg();
            alert(xhr.status);
            alert(thrownError);
        }
    });
    return false;
}                        
编辑

只是重申一下,在select的on change事件中添加事件处理程序并不是问题(就我所见),而是请求本身或回调

使用数据本机菜单=“true”时,页面工作正常。我只在fiddle中使用了“$(document).ready(function(){”,因为我不知道如何让它以任何其他方式工作,所以我不会在真正的应用程序中使用它

编辑 我已经在5台设备上试用过,它似乎在4.2、4.1、2.5上运行,但在3台设备上不起作用。

这里有一个固定的JSFIDLE:

像这样使用它:

$(document).on('pagebeforeshow', '#p1', function(){   
    $(document).on('change', '#aS', function(event, ui){          
            alert('going to change');
            getAjax('',{},function(){
                alert('got callback');
            });
        });
    });
        .
        .
        .

感谢您的回复。这不起作用,但是,挂接更改事件在现有代码中工作良好。它只是不回调ajax函数。您的小提琴在android设备上不起作用。我在三星Galaxy S3 android 4.1.1上测试过它,但并不总是如此(但这是因为$(文档)。就绪(函数(){原因:)但它是有效的,chrome和股票浏览器这显然是android的一个问题,但我没有