JqueryMobile,AJAX和JSON

时间:2012-04-17 20:39:24

标签: jquery jquery-mobile

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

1 个答案:

答案 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()相同。