2012-03-13 94 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

相關問題