1

誰かが何が起こっているのかを理解するのを手伝ってくれることを願っています。私が構築しているウィジェットで:

$.widget("myns.usertable", { /* snip */});

いくつかのプライベート イベントをトリガーしてキャプチャする必要があります。私はこのコードを持っています:

  this._on({
    'keypress .user-input-fld': function(e) {
      switch (e.which) {
        case 13:
          e.preventDefault();
          var item = (inputfld.val());
          addbtn.trigger('itemsubmit', [item]);
          break;
      }
    },
    'itemsubmit.usertable': function(e, item) {
      console.log('itemsubmit', '_on');
      self._addItem(item);
      inputfld.val('').focus();
    }
  });

そして、そのkeypress部分はうまく機能しますが、itemsubmit.usertableは決して呼び出されないようです。代わりに、次のように聞く必要があります。

  table.bind('itemsubmit.usertable', function(e, item) {
    self._addItem(item);
    inputfld.val('').focus();
  });

一般的にはこの方法で行くことができますが、なぜそうなるのかを本当に理解できれば、より自信が持てるようになります. this._on({})コード全体に散らばっているイベントバインディングよりも and コレクションの方がずっと好きです。私はエレガントなコードを書いていないと感じています。

私は何を間違っていますか?

ところで、このMicrosoft のドキュメントは、jQuery のドキュメントよりも役立つことがわかりました。はぁ。

4

0 に答える 0