如何解决此问题?我已经在这个问题上苦苦挣扎了4个多小时。
TypeError:this._on不是函数
我的代码在那里
this.input = $( "<input>" )
.appendTo( this.wrapper )
.val( value )
.attr( "title", "" )
.addClass( "custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left" )
.autocomplete({
delay: 0,
minLength: 0,
source: $.proxy( this, "_source" )
})
this._on( this.input, {
autocompleteselect: function( event, ui ) {
ui.item.option.selected = true;
this._trigger( "select", event, {
item: ui.item.option
});
},
答案 0 :(得分:11)
我知道这是一个古老的死线程,但对于其他遇到过这种情况的人来说,因为我一直在寻找这个错误出现的原因。标记为正确答案的答案不正确。提问者询问jquery组合框插件,这是问题中代码片段的来源。错误发生在
this._on
在这种情况下,“this”指的是jquery-ui小部件对象,从版本1.9.0开始,它有一个名为“_on”的方法。最可能的问题是提问者要么不包括jquery-ui,要么使用1.9.0之前没有该方法的jquery-ui版本。如果出现此错误,请确保已加载jquery-ui并打开jquery-ui文件并搜索“_on”如果找不到问题。
答案 1 :(得分:-1)
答案 2 :(得分:-3)
正如其他人所提到的,它是on(),而不是_on()。也可以使用$(this).on而不是this.on()来确保它是一个jquery对象。如果你发现自己做了很多(这个),可以将它存储在一个可以重用的变量中。