在索引页面中,用户单击导航链接,数据属性通过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或categoryDescription都没有更新。我试过.trigger('刷新'),。strigger('updatelayout'),但没有运气!
答案 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();