JQueryUI Widget扩展 - 订阅“_create”中的事件

时间:2015-04-14 21:43:06

标签: jquery jquery-ui

我很久以来一直在使用JQueryUI。我正在重写自动完成小部件并尝试在内部订阅“select”事件,但由于某种原因(可能做错了),当菜单中的项目被选中时,它永远不会达到“选择”处理程序:

$.widget( "myAutocomplete", $.ui.autocomplete, {
  _create: function(){
    var element = this.element;

    this._super();

    this._on(element, {
     'select': function (){ 
       // NOTE: never riches this 
      }
    });

  }
});

1 个答案:

答案 0 :(得分:0)

没有select事件。 select是为方便起见而提供的选项;事件的实际名称将是myautocompleteselect

$.widget( "my.myAutocomplete", $.ui.autocomplete, {
  _create: function(){
    var element = this.element;

    this._super();

    this._on(element, {
     'myautocompleteselect': function (){ 
       // will now reach this
      }
    });

  }
});

相关位位于“事件”部分下的http://api.jqueryui.com/jQuery.widget/中:

  

对于大多数小部件,当触发事件时,名称以小部件名称为前缀并以小写为前缀。

此外,您在窗口小部件名称中缺少命名空间(“namespace.myAutocomplete”)。如果您尝试使用它,则会出现错误