我有3个ajax从3个不同的网站调用curl。 当第一个ajax完成时,我将初始化jplist,然后ajax将添加到列表中。 问题是我需要在初始化之后的下一个ajax中将项添加到checkbox过滤器,因此它表示动态过滤器项。 现在,工作过滤器是来自第一个ajax的过滤器。
如何在初始化后从下一个ajax添加过滤器? 之后首先ajax我做初始化的原因是因为我不希望用户等到所有ajax完成,因为这需要时间。
感谢。
答案 0 :(得分:0)
我遇到了同样的问题,这就是我要解决的问题:
var jpl = function(){
$('#demo').jplist({
itemsBox: '.files',
itemPath: '.contentitem',
panelPath: '#filters-container',
noResults: '.jplist-no-results',
dataSource: {
type: 'server',
server: {
ajax: {
url: '/api/files',
dataType: 'json',
type: 'POST'
}
},
render: function(dataItem, statuses) {
$list.html(template(dataItem.content));
}
}
});
}
$("body").on('click', '.morenav>a', function(ev){
ev.preventDefault();
ev.stopPropagation();
var href = $(this).attr('href');
var mn = $(this).closest('.morenav');
$.ajax({
type: "POST",
dataType: 'json',
url: href,
contentType: "application/json; charset=utf-8",
success: function (data) {
$(data['content']).insertBefore(mn); // <===== put html content from ajax return here
jpl(); // <===== call jplist again after ajax call here
},
error: function(data){
console.log("ERROR ", data);
},
});
});
jpl(); // <===== call jplist here
json api返回的位置:
{
'page': 2,
'content': '<input data-path=".the_path" type="checkbox" id="the_chkbox" name="the_chkbox" value="1" >',
}