自: andrew whittakers example showing result numbers in a custom jquery autocomplete implementation
_response: function(contents){
$.ui.autocomplete.prototype._response.apply(this, arguments);
$(this.element).trigger("autocompletesearchcomplete", [contents]);
}
为什么[contents]
而不是contents
?
答案 0 :(得分:5)
jQuery
的{{1}}函数要求第二个参数是一个数组(在1.6.2之前),因此包装使它成为一个数组。来自trigger docs(由我强调):
trigger
事件对象始终作为事件的第一个参数传递 handler,但是如果在a期间指定了其他参数 .trigger()调用,这些参数将被传递给处理程序 同样。 要传递多个参数,请使用此处所示的数组。 从jQuery 1.6.2开始,可以在不使用的情况下传递单个参数 阵列强>
从1.6.2开始,实际上没有必要将单个参数包装在数组中。
答案 1 :(得分:1)
如果函数需要数组,则将一个或多个元素放在方括号中。例如,trigger的函数声明是
.trigger(eventType [,extraParameters])
由于您可能希望为其提供多个额外参数,因此它接受一组数组。如果你只有一个额外的参数,比如你的情况下的“内容”,你就可以把它放到一个数组中(或者你只有一个参数,你也不能把它放到一个数组中,因为JQuery现在接受了无论哪种方式)。
答案 2 :(得分:0)
正如Trinh用一个元素指出它的数组[内容]。
我不知道为什么,但是如果你将它改为内容而不是[content],它将在整个单词中搜索查询。
如果它的[内容]它只会在开头搜索。