我目前正致力于动态生成的手风琴和子手风琴。我已经实现了一个完美的过滤功能。 Ajax用于更改页面内容。因此我创建了以下功能:
function loadSubaccordionContent(elem){
console.log("loadSubaccordionContent");
elem = $(elem);
var accordion_header = $('.ciTypeHeader').closest('.ui-accordion-header-active');
if(!elem.hasClass("ciTypeHeader")){
elem = accordion_header;
};
var ciTypeId = elem.data("ci-type-id");
var ciRelationTypeId = elem.data("ci-relation-type-id");
var sessionId = "accordion_"+ciTypeId+'_'+ciRelationTypeId;
elem.data("session-id",sessionId);
ajaxRequest = $.ajax(
{ url: '<?php echo APPLICATION_URL?>relation/partial',
method: 'POST',
cache: false,
async: false,
data: {
ciRelationTypeId: elem.data("ci-relation-type-id"),
ciId: elem.data("ci-id"),
ciTypeId: elem.data("ci-type-id"),
page: elem.data("page"),
rowCount: elem.data("row-count"),
orderBy: elem.data("ordering-array"),
filterSet: elem.data("filter-set"),
filter: elem.data("filter"),
sessionId: elem.data("session-id"),
layout: false
},
}
) .done(function( data ) {
accordion_header.data("filter-set",false);
return $("#subaccordionContent_"+ciTypeId+'_'+ciRelationTypeId).html(data);
})
};
问题是,$ .ajax请求在Firefox中挂起。在IE和谷歌浏览器中一切正常。
如果我在subacordord中的某个位置执行某些操作或者我正在滚动,则只会返回响应。
Firebug中没有错误消息 - &gt;在那里我只看到ajax正在加载。
此外,如果我点击Firebug,我也会收到回复。
有人曾经过类似的行为吗?
答案 0 :(得分:0)
尝试在window.onload事件中使用该方法。 或者最后使用jquery read方法。
$(function (){
loadSubaccordionContent()
});
window.onload = function loadSubaccordionContent(elem) {
console.log("loadSubaccordionContent");
elem = $(elem);
var accordion_header = $('.ciTypeHeader').closest('.ui-accordion-header-active');
if (!elem.hasClass("ciTypeHeader")) {
elem = accordion_header;
};
var ciTypeId = elem.data("ci-type-id");
var ciRelationTypeId = elem.data("ci-relation-type-id");
var sessionId = "accordion_" + ciTypeId + '_' + ciRelationTypeId;
elem.data("session-id", sessionId);
ajaxRequest = $.ajax({
url: '<?php echo APPLICATION_URL?>relation/partial',
method: 'POST',
cache: false,
async: false,
data: {
ciRelationTypeId: elem.data("ci-relation-type-id"),
ciId: elem.data("ci-id"),
ciTypeId: elem.data("ci-type-id"),
page: elem.data("page"),
rowCount: elem.data("row-count"),
orderBy: elem.data("ordering-array"),
filterSet: elem.data("filter-set"),
filter: elem.data("filter"),
sessionId: elem.data("session-id"),
layout: false
},
}).done(function(data) {
accordion_header.data("filter-set", false);
return $("#subaccordionContent_" + ciTypeId + '_' + ciRelationTypeId).html(data);
})
};
答案 1 :(得分:-1)
这是一个本地问题。 我删除了浏览器缓存和所有cookie。 现在它正在运作。