jquery mobile 1.4不更新页面转换的内容

时间:2014-01-13 23:45:44

标签: jquery-mobile

在索引页面中,用户单击导航链接,数据属性通过ajax传递,数据从服务器检索,但内容未在新页面上更新。

被困了几个小时,非常感谢任何帮助!

JS

$('a.navLink').on('click', function() {
var cat = $(this).data("cat");
console.log(cat);
$.ajax({
    url:        'scripts/categoryGet.php',
    type:       'POST',
    dataType:   "json",
    data:       {'cat': cat},
    success:    function(data) {
                    var title           = data[0][0],
                        description     = data[0][1];
                        console.log(title);
                    $('#categoryTitle').html(title);
                    $('#categoryTitle').trigger("refresh");
                    $('#categoryDescription').html(description);
                    $('#categoryDescription').trigger("refresh");
    }
});
});

我在两个控制台日志上都得到了正确的响应,所以我知道这些工作,但是divs categoryTitle或categoryDe​​scription都没有更新。我试过.trigger('刷新'),。strigger('updatelayout'),但没有运气!

1 个答案:

答案 0 :(得分:0)

这不是一个答案(但我还不能发表评论......(奇怪的SO规则)

您应该在问题描述中指定上述代码是否正常工作,当您在该页面/代码上使用JQM ajax导航来回播放时,您的问题就会出现。

根据我在上面的评论中的理解,你可能每次返回页面时“堆叠”ajax函数,从而得到奇怪的结果,如果没有的话。

你的示例代码是否包含在内?如果没有,(假设您使用JQM v1.4),您应该考虑将其包装到$( 'body' ).on( 'pagecontainercreate', function( event, ui ) {...中,我试图弄清楚自己如何最好地玩...

防止堆叠ajax定义的简单解决方案是创建/使用控件var,这是一种方法:

var navLinkCatchClick = {
  loaded: false,
  launchAjax: function(){
    if ( !this.loaded ){
      this.ajaxCall();
    }
  },
  ajaxCall: function(){
    // paste you example code here..

    this.loaded = true;
  }
}
navLinkCatchClick.launchAjax();