javascript - JS在ajax回调函数中初始化插件的错误
伊谢尔伦
伊谢尔伦 2017-04-10 14:54:08
0
2
375

描述:

  • 在项目中,我有一个页面,上面有一个table,用来呈现数据列表。这个table是纯html的table里面的数据是我由ajax请求之后,动态拼接到table上的,我想给它加上分页,于是我找到了jPaginate插件。专门用来分页加载数据,伪代码如下:
$(function() {
    var flags;
    var loadDataSource = function(params, flags) {
        xxx.done(function(r) {
            /*这里是ajax请求成功之后,获取到了该次请求的数据和总的数据条数*/
            if (flags) {
                initPager(count);
            }
        });
    };
    var initPager = function(count) {
        $("#pager").paginate({
            count: 50,
            start: 5,
            display: 10,
            border: false,
            text_color: '#888',
            background_color: '#EEE',
            text_hover_color: 'black',
            background_hover_color: '#CFCFCF',
            onchanged: function(pageindex) {
                loadDataSource(params, false);
            }
        });
    };
    loadDataSource(parms, true);
/*以上伪代码是可以正确使用的,杂初始化页面时也能正确根据我获取到的总条数初始化分页控件
但是,在我点击页面的查询按钮(下面的代码)时,分页控件就无法正常初始化,插件内部就报错了直接。但是当我把`initPager `函数放在window下,刷新页面,在控制台手动调用时,均能正常和多次初始化分页插件,唯独在点击查询按钮进行查询后初始化时会报错。



数据正常成功加载,页面无其它错误。
*/

    $("#search").bind("onclick",function(){
        loadDataSource(params);
    });
});

想请大家帮我看看,这到底是什么问题。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

reply all(2)
阿神

已经换用了其它解决方案

巴扎黑

你给的代码似乎不完全符合你描述的问题,你可以说得更清楚一些。
建议你检查一下初始化顺序,是否iniPager调用时loadDataSource还没有初始化等。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template