2012-03-13 9 views
2

私は改ページプラグインを書き直しました。明示的なIDを使用してプラグインにバインドすると完全に動作します。ただし、クラス名を使用してプラグインをバインドすると、「選択されたページ」イベントは1つの要素に対してのみトリガーされます。私のイベントが両方の加入者に対してトリガーされないのはなぜですか?

だから、私の質問は...

しないのはなぜ両方の要素のためのトリガー火?

トリガーは2回発生しますが、バインドは2回実行されません。これは、コンソールが1回だけ作成されるため、明らかです。

CODEは、次の場所にあります。
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を使用し、最小表現にコードを減らす:あなたのポイントを示すコードの最小部分あなたは、すべてのコントローラオブジェクトにバインドすることができるように.each()ループに結合することを行う必要があります。ありがとう。 –

+0

@Gonzalo Done ...ありがとう! –

+0

コントローラコードが私を混乱させます。 '$()'のControllerインスタンスをラップすることでイベントをトリガーするので、どのように*動作するかを理解できません。 – Pointy

答えて

2

私は今の問題を参照してください。あなたは、このようにイベントハンドラをバインドしている:

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

.data()への呼び出しのみ最初に一致した要素のコントローラオブジェクトを返します。

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

PERFECT!ありがとう! –

関連する問題