我正在尝试使用ajax调用使用JquerMobile框架从服务器端获取一些值作为JSON对象。这在桌面Chrome浏览器中没有任何问题。这不适用于手机浏览器。任何指示我在这里做错的帮助都会有所帮助。下面的脚本。
$("#showmore").live("click", function(event, param1){
event.preventDefault();
getUrl = $(this).attr('href');
$.post(getUrl, function(data){
$('#sname').html(data.name);
},"json");
return false;
});
如果我在警告框中打印回调数据,我会获得当前页面的HTML内容!在桌面浏览器中,我得到了正确的值。谢谢你的帮助!
答案 0 :(得分:0)
我遇到过同样的问题。我只是在iPad上遇到过这个问题而无法找到修复方法。我能够找到一种解决方法。
不要依赖href
属性,而是使用data-attribute
,例如data-href
。将data-href
属性设置为与href
属性相同,并引用jQuery代码中的data-href
属性。
在某些版本的Mobile Safari中,您似乎无法获得正确的href
属性值。您使用AJAX请求加载同一页面的原因是因为通过JS返回给您的href
值是空白的,引用它的父文档。
JS -
$("#showmore").live("click", function(event, param1){
var getUrl = $(this).attr('data-href');//no need to create a global variable, so use the `var` keyword here
$.post(getUrl, function(data){
$('#sname').html(data.name);
},"json");
return false;
});
HTML -
<a data-href="foobar.html" href="foobar.html" id="showmore">SHOW MORE!</a>
请注意,jQuery事件处理程序中的return false
在功能上与同时调用event.preventDefault()
和event.stopPropagation()
相同。