为什么我的事件不会触发两个订阅者?

时间:2012-03-13 13:46:23

标签: javascript jquery html

我重新编写了分页插件,当我使用显式Id绑定到插件时,它工作正常。但是,当我使用类名绑定插件时,“页面选择”事件仅触发一个元素。

所以,我的问题是......

为什么不触发这两个元素的触发器?

为了清楚......触发器引发了两次,但绑定没有运行两次......这很明显,因为控制台getS只写了一次!

代码位于:
The JS Fiddle

攻击区域是:

<script type="text/javascript">
    $(document).ready(function () {

        var pageSize = 5;
        $('.grid-bar-pager').pagination({
            itemsPerPage: pageSize,
            numberDisplayEntries: 10,
            numEdgeEntries: 2,
            maxEntries: 10
        });

        $('.grid-bar-pager').data('pagination').bind("pageSelected", function (event, args) {
            console.log("pageSelected"); // <--- THIS ONLY FIRES once?
        });
    });
</script>

1 个答案:

答案 0 :(得分:2)

我现在看到了问题。你绑定了这样的事件处理程序:

$('.grid-bar-pager').data('pagination').bind( ... );

.data()的调用将仅返回第一个匹配元素的Controller对象 。您应该在.each()循环中进行绑定,以便绑定到每个Controller对象:

$('.grid-bar-pager').each(function() {
  $(this).data('pagination').bind( ... );
});