2012-03-13 92 views
2

我重写了分页插件,当我使用显式标识绑定到插件时,它完美地工作。但是,当我使用类名称绑定插件时,“页面选定”事件仅触发一个元素。为什么我的事件不会触发两个订户?

所以,我的问题是...

为什么不触发火两种元素?

只是要清楚......触发器会引发两次,但绑定不会运行两次......这一点很明显,因为控制台只能写入一次!

的代码是位于:
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> 
+0

请:使用jsfiddler,减少代码的最小表达式:演示贵点的代码,其最小的部分。谢谢。 – 2012-03-13 13:54:43

+0

@Gonzalo完成...谢谢! – 2012-03-13 14:02:57

+0

你的控制器代码让我困惑;你通过将Controller实例包装在'$()'中来触发事件,所以我不明白它是如何工作的...... – Pointy 2012-03-13 14:30:38

回答

2

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

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

.data()的调用将返回控制器对象第一个匹配的元素只。你应该做的是在.each()环结合,所以你可以绑定到每一个控制器对象:

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

完美!谢谢! – 2012-03-13 14:54:38

相关问题