可以扩展jqPagination的分页回调以提供第二个参数,指示哪个jquery对象触发回调吗?

时间:2017-03-18 17:29:07

标签: jquery jqpagination

我正在寻找一个jquery分页插件来为我的网页上的内容启用分页,我发现jqPagination是一个非常好的插件。但我有一个用例,我需要使用插件UI的多个实例来控制同一网页上的不同内容组,以下是我如何使用该插件的演示。正如javascript代码所示,我需要的第二个参数是触发回调的jquery对象。原因是当前页码作为回调的单个参数不允许我告诉两个实例中哪一个是事件的来源,因此无法控制相关的内容组。

    <p>First</p>
    <div id="111" class="pagination">
        <a href="#" class="first" data-action="first">&laquo;</a>
        <a href="#" class="previous" data-action="previous">&lsaquo;</a>
        <input type="text" readonly="readonly" />
        <a href="#" class="next" data-action="next">&rsaquo;</a>
        <a href="#" class="last" data-action="last">&raquo;</a>
    </div>

    <p>Second</p>
    <div id="222" class="pagination">
        <a href="#" class="first" data-action="first">&laquo;</a>
        <a href="#" class="previous" data-action="previous">&lsaquo;</a>
        <input type="text" readonly="readonly" />
        <a href="#" class="next" data-action="next">&rsaquo;</a>
        <a href="#" class="last" data-action="last">&raquo;</a>
    </div>

使用Javascript:

    <script>
        $(function() {
            $('.pagination').jqPagination({
                max_page: 99,
                page_string: "Deployment {current_page} / {max_page}",
                paged: function(page, jqObject) {
                    console.log("page - " + page + "\njqObject.outerHTML = " + JSON.stringify(jqObject.outerHTML, null, 4) + "\n\n")
                }
            });     
        });
    </script>

我看了一下插件源代码,发现传递base.el作为第二个参数可能是我的问题的快速解决方案。但我想知道是否值得将其放入github上的jqPagination项目,以防其他人有类似的需求。谢谢!

    // ATTN this isn't really the correct name is it?
    base.updateInput = function (prevent_paged) {

        var current_page = parseInt(base.options.current_page, 10);

        // set the input value
        base.setInputValue(current_page);

        // set the link href attributes
        base.setLinks(current_page);

        // we may want to prevent the paged callback from being fired
        if (prevent_paged !== true) {

            // fire the callback function with the current page
            base.options.paged(current_page, base.el);

        }

    };

0 个答案:

没有答案