在这个网站上——Kendo UI 的自动完成小部件文档——有一段我只理解部分的代码。
$(document).ready(function() {
var autocomplete = $("#customers").kendoAutoComplete({
minLength: 1,
dataTextField: "ContactName",
headerTemplate: '<div class="dropdown-header">' +
'<span class="k-widget k-header">Photo</span>' +
'<span class="k-widget k-header">Contact info</span>' +
'</div>',
template: '<span class="k-state-default"><img src=\"../../content/web/Customers/#:data.CustomerID#.jpg\" alt=\"#:data.CustomerID#\" /></span>' +
'<span class="k-state-default"><h3>#: data.ContactName #</h3><p>#: data.CompanyName #</p></span>',
dataSource: {
transport: {
read:{
dataType: "jsonp",
url: "http://demos.telerik.com/kendo-ui/service/Customers"
}
}
},
height: 370,
}).data("kendoAutoComplete");
});
这是我所理解的:这是一个标准的自动完成控件,它使用模板使小部件看起来更好一些。我了解模板的工作原理(主要是),并且我知道将它放在 .ready() 函数中会导致它在 DOM 加载时运行。
我不明白的是最后需要 jQuery 的 .data() 函数。为什么会在那里?我试图理解jQuery 文档,但似乎还有更深层次的事情发生。autocomplete
此代码示例的其余部分未使用该变量,所以我想知道这是否是 Kendo 的错误。
.data() 函数将任意数据附加到 DOM 元素。剑道在多大程度上使用了这些任意数据?