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