0

我正在尝试使用 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 内容!在桌面浏览器中,我得到了正确的值。感谢您的帮助!

4

1 回答 1

0

我也有同样的问题。我只在 iPad 上遇到过这个问题,无法找到解决方法。不过,我能够找到解决方法。

不要依赖href属性,而是使用 a data-attribute, like data-href。将data-href属性设置为与属性相同并在 jQuery 代码中href引用该属性。data-href

href在某些版本的 Mobile Safari 中似乎存在一个错误,您无法获得正确的属性值。您使用 AJAX 请求加载同一页面的原因是因为href通过 JS 返回给您的值是空白的,指的是它的父文档。

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>

请注意,return false在 jQuery 事件处理程序中,在功能上与调用相同,event.preventDefault()并且event.stopPropagation()是同时进行的。

于 2012-04-17T21:06:20.347 回答