jQuery小部件 - 触发和捕获私有事件

时间:2013-10-13 10:14:25

标签: jquery jquery-plugins widget

我希望有人能帮助我了解正在发生的事情。在我正在构建的小部件中:

$.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({})和集合,而不是遍布我的代码的事件绑定。我觉得我写的不是优雅的代码,这很痛。

我做错了什么?

顺便说一下,我发现这个Microsoft documentation比jQuery更有帮助。叹息。

0 个答案:

没有答案