我正在使用 JQuery UI 自动完成。在所有其他浏览器中都可以正常工作,IE 除外。它在 jquery.ui.js (735,2) 处给我一个Invalid Calling Object 错误。
这是抛出错误的JQuery代码......
_delay: function( handler, delay ) {
function handlerProxy() {
return ( typeof handler === "string" ? instance[ handler ] : handler )
.apply( instance, arguments );
}
var instance = this;
*return setTimeout( handlerProxy, delay || 0 );*
},
老实说,我不知道发生了什么,因为它适用于其他浏览器。
var input = $('input', ph);
input.autocomplete({
create: function () {
$(this).data('ui-autocomplete')._renderItem = function (ul, item) {
return $("<li></li>").append(myself._createLabelTag(item.label)).appendTo(ul);
};
},
source : function(request, response) {
var term = request.term.toUpperCase();
var matches = $.map(this.valuesArray, function(tag) {
if (myself._createLabelTag(tag.label).text().toUpperCase().indexOf(term) >= 0) {
return tag;
}
});
response(matches);
}.bind(this),
select : function(event, ui) {
$('#' + this.htmlObject + '-input').val(ui.item.value);
myself.dashboard.processChange(this.name);
}.bind(this)
});
由于 Invalid Calling Object 错误,未调用源事件,因此未呈现自动完成选项。