初始化jplist后如何添加复选框过滤器项

时间:2018-04-12 02:33:19

标签: jquery ajax jplist

我有3个ajax从3个不同的网站调用curl。 当第一个ajax完成时,我将初始化jplist,然后ajax将添加到列表中。 问题是我需要在初始化之后的下一个ajax中将项添加到checkbox过滤器,因此它表示动态过滤器项。 现在,工作过滤器是来自第一个ajax的过滤器。

如何在初始化后从下一个ajax添加过滤器? 之后首先ajax我做初始化的原因是因为我不希望用户等到所有ajax完成,因为这需要时间。

感谢。

1 个答案:

答案 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" >',
}