我将输出页面的源代码复制到下面的文件中,这样你就可以看到我在说什么:
http://playerspace.com/mysource.html
我们正在关注的是最近的活动ajax(由于某种原因,它不适用于此输出版本)。我希望只看代码就足以诊断出来了。
无论如何,问题是“评论”链接,这是一种显示扩展文本区域的手风琴。在时间轴中接下来的5个项目的ajax加载之后,评论链接(部分或全部)完全停止响应。
我尝试将手风琴代码直接添加到ajax调用中,但仍然无法一致地执行。
$(document).on("click",'.siteusemore',function()
{
var ID = $(this).attr("id");
var myscript = window.siteusemore_script || null;
if(ID)
{
$("#siteusemore"+ID).html('<img src="/images/processing.gif" />');
$.ajax({
type: "POST",
url: myscript,
data: "lastmsg="+ ID,
cache: false,
success: function(html){
$("ol#siteuseupdates").append(html);
$("#siteusemore"+ID).remove();
$('.accordionContent,.accordionContent-settings').hide();
$('.accordionContent,.accordionContent-manuallyadd').hide();
$('.accordion-comments').live("click",function(event){
var target=$(this).attr('href');
if($(target).css('display')=='none')
{
$(target).show();
$(this).text('Hide Comments');
}
else
{
$(target).hide();
$(this).text('Comments');
}
return false;
});
}
});
}
else
{
$(".siteusemorebox").html('The End');
$('.accordionContent,.accordionContent-settings').hide();
$('.accordionContent,.accordionContent-manuallyadd').hide();
$('.accordion-comments').live("click",function(event){
var target=$(this).attr('href');
if($(target).css('display')=='none')
{
$(target).show();
$(this).text('Hide Comments');
}
else
{
$(target).hide();
$(this).text('Comments');
}
return false;
});
}
return false;
});
我刚刚开始使用ajax,我可以在这里使用帮助。我想我的问题是获取在我的site.js文件中执行的代码(在页面底部找到)与每个ajax加载一致地触发?
我也不知道这是否有帮助,但问题似乎发生在其他所有的ajax调用上,这很奇怪。
答案 0 :(得分:0)
我认为你需要重启手风琴。将此代码添加到您的成功ajax调用回调:
$("#accordion").accordion("destroy");
$("#accordion").accordion({collapsible: true,header: "h3",active: false});
这应该在正确的div上应用手风琴,请用“h3”替换你的标题div。