jQueryGet函数在真正的移动设备上不起作用
jQuery Get function wont work when on a real mobile device
我一直在开发一个应用程序,该应用程序从dropbox中收集csv文件,然后显示它。由于我使用phonegap,我一直在使用浏览器进行开发和测试,更确切地说是Firefox。当天结束时,我把它加载到我的HTC平板电脑上,安卓3.2.1,但它就是不起作用。这是目前使用的代码:
$.get('https://dl.dropboxusercontent.com/u/53792213/App/David.csv', function(data) {
alert('Success');
// Do stuff
})
.fail(function() { alert('error'); });
这段代码在Firefox和安卓4.2.2的安卓模拟器上运行得非常好。但不是在真正的物理设备上。
我根本解不出来。不会给出任何错误,也不会调用fail函数。我添加的两个警报都不要开火。
这非常令人沮丧,因为我无法访问远程调试,而且我无法在桌面上调试,因为它在桌面上运行良好。
我正在使用jquery 2.0.2和jquery mobile 1.3.1
即使是最细微的线索我也会感激的。
编辑:为了找出错误,现在它实际上抛出了一个错误,我将我的声明修改为:
$.get('https://dl.dropboxusercontent.com/u/53792213/App/David.csv', function(data) {
alert('Success');
// Do stuff
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert("An AJAX error occured: " + textStatus + "'nError: " + errorThrown);
});
然而,这是它返回的错误:
An AJAX error occured: error
Error:
一条空白的错误消息?要么我做错了什么,要么javascript想慢慢地杀死我。
编辑2:
做了一些实验后,我发现了更多奇怪的行为。如果我将get()函数直接添加到我的deviceReady函数中,就像在中一样,当应用程序加载并准备就绪时,它会被触发,那么它可以完美地工作。
但是(这就是已经发生的事情)如果我在设备就绪函数中绑定了一个click-jquery事件,然后调用其中的get函数,它就不起作用了。看看这个:
var App = {
// Application Constructor
initialize: function() {
this.bindEvents();
},
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady: function() {
//This does work
$.get('http://dl.dropboxusercontent.com/u/53792213/App/DavidColson.csv', function(data) {
alert('Success');
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert("An AJAX error occured: " + textStatus + "'nError: " + errorThrown);
});
$("#Button").bind("click", function(event) {
alert("Hello");
//This does not work
$.get('http://dl.dropboxusercontent.com/u/53792213/App/DavidColson.csv', function(data) {
alert('Success');
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert("An AJAX error occured: " + textStatus + "'nError: " + errorThrown);
});
});
},
};
在上述情况下,hello警报会触发,但不会触发success警报,相反,我会收到一个空白的ajax错误。有什么想法吗?
为什么同时使用jQuery和jQuery mobile?看起来你应该能够使用移动设备,而使用这两个库可能会导致冲突。
您可以尝试添加对jQuery.noConflict()的调用来解决此问题:
<script type="text/javascript">
// This takes out the jQuery variable '$' from the global scope
$.noConflict();
jQuery(document).ready(function($) {
jQuery.get('https://dl.dropboxusercontent.com/u/53792213/App/David.csv',function(data)
{
alert('Success');
}).fail(function() { alert('error'); });
});
//rest of your normal jQuery that uses the $. here
</script>
编辑:看来jQuery mobile与jQuery 2不兼容。试着引用jQuery 1.9.1,看看这是否有效。
- XMLHttpRequest在移动设备上的chrome上不起作用
- 下拉式父菜单链接在移动设备中不起作用
- 我的响应菜单在移动版中不起作用
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- Angular js过滤器在某些移动设备上不起作用
- Jquery移动转换复选框在Jquery onclick函数()中第二次选中不起作用
- html视频javascript播放方法在移动Safari中不起作用
- HTML 不加载 CSS ,刷新后一切正常.同样在移动设备上,它在首次加载时不起作用
- 铬移动;导航.地理位置不起作用
- 移动导航菜单不起作用(HTML,CSS和JQuery)
- jQuery .play() 在移动 Safari 上不起作用
- overflow-x:隐藏在移动设备上不起作用
- 鼠标点击不会'不起作用,鼠标移动可以
- 在编译jquery移动代码时,Script标记在Eclipse Phonegap中不起作用
- I'我试图用一个按钮随意移动一个CSS元素,我试图使用偏移量,但onlick不起作用
- jQuery:jQuery.val()在移动Safari和Chrome中不起作用
- 在移动设备领域,空白:nowrap;溢出:隐藏;文本溢出:省略号;有点不起作用
- 第二个ajax请求在移动浏览器上不起作用
- 移动响应表单不起作用
- 在 Javascript 中使用 setTimeout 移动文本不起作用