我有一个jQuery自动完成问题。在keydown上,所选项目不是“Item1”,它将是包含span和ul的完整无序列表。
<ul>
<li>
<span>Items</span>
<ul>
<li><a>Item1</a></li>
<li><a>Item2</a></li>
</ul>
</li>
<li>
<span>Cars</span>
<ul>
<li><a>Car1</a></li>
<li><a>Car2</a></li>
</ul>
</li>
<li>
<span>Test</span>
<ul>
<li><a>Test1</a></li>
<li><a>Test2</a></li>
</ul>
</li>
</ul>
问题是:
在keydown上 - &gt; menufocus:ui.item.data(“ui-autocomplete-item”) - &gt; ui.item 未定义(在jquery.ui.js文件中)
menufocus中的ul参数是“项目”(<ul><li><a>Item1</a></li><li>...</li></ul>).
的完整列表
我想要的:在keydown上选择Item1,下一个Item2,下一个Car1,Car2等等......
_renderMenu:
$.each( items, function( index, item ) {
...
if ( item.category != currentCategory ) {
categoryIndex++;
//Create "li"s for every category and append a span and the new ul to it.
var myLi = "<li class='ui-autocomplete-category'><span class='ui-autocomplete-category-head'><i class='" + category.icon + "'></i> " + category.name + "</span></li>";
var myLi = $(myLi).removeData("item.autocomplete-item");
myLi.append("<ul class='ui-autocomplete-inner-ul' role='listbox' aria-labelledby='cat" + categoryIndex + "' id='innerUlCat"+categoryIndex+"' aria-readonly='true'>");
var myUl = ul.append(myLi);
currentCategory = item.category;
}
var currentUl = $(ul).find("#innerUlCat"+categoryIndex) || ul;
li = that._renderItemData( currentUl, item );
});
_renderItemData: return this._renderItemOwn( ul, item );
_renderItemOwn:
return $( "<li></li>" )
.data( "ui-autocomplete-item", item )
.append( "<a class='ui-autocomplete-item'>" + item.label + "</a>" )
.appendTo( ul );
在_renderItemOwn中,我添加了数据“ui-autocomplete-item”,但它不起作用。
有什么解决方案吗?谢谢!