Jas*_*nce 4 focus jquery-ui autocomplete
Mornin'全部,
我有麻烦玩jQuery UI自动完成小部件事件.我想将一个自定义类添加到所选项的父级<li>.生成的标记如下所示:
<li class="result">
<a><span></span></a>
</li>
Run Code Online (Sandbox Code Playgroud)
当一个项目是焦点时,jQuery将该类添加.ui-state-hover到<a>
如何.selected向父类添加类<li>?我正试图从一个focus事件做到但我不知道如何访问父母<li>.我查看了jQuery UI的来源,找到了.ui-state-hover应用的位置和方式,但没有帮助.
这是我的自动完成代码.
/**
* Override the default behavior of autocomplete.data('autocomplete')._renderItem.
*
* @param ul _object_ The conventional ul container of the autocomplete list.
* @param item _object_ The conventional object used to represent autocomplete data.
* {value:'',label:'',desc:'',icon:''}
*/
var renderItemOverride = function (ul, item) {
return $('<li class="result"></li>')
.data("item.autocomplete", item)
.append('<a><span class="name">' + item.label + '</span><span class="type"></span></a>')
.appendTo(ul);
};
$('#live_search').autocomplete({
source: function(request, response) {
$.ajax({
url: "search.json",
dataType: "json",
cache: false,
data: {
term: request.term
},
success: function(data ) {
response($.map(data.contacts, function(item) {
return {
label: item.name || (iterm.firstname + item.lastname),
value: item.name || (iterm.firstname + item.lastname),
id: item._id
}
}));
}
});
},
appendTo: '.live_search_result_list',
autoFocus: true,
minLength: 2,
focus: function(event, ui) {
},
select: function(event, ui) {
console.log("do a redirection");
}
}).data('autocomplete')._renderItem = renderItemOverride;
Run Code Online (Sandbox Code Playgroud)
})
任何忍者都可以帮忙吗?
怎么样:
focus: function(event, ui) {
$(".live_search_result_list li.result").removeClass("selected");
$("#ui-active-menuitem")
.closest("li")
.addClass("selected");
},
Run Code Online (Sandbox Code Playgroud)
然后,当菜单失去鼠标焦点时selected从任何lis中删除该类:
$(".live_search_result_list ul").mouseleave(function() {
$(this).children("li.result").removeClass("selected");
});
Run Code Online (Sandbox Code Playgroud)
这是一个有效的例子:http://jsfiddle.net/andrewwhitaker/4z3SQ/
| 归档时间: |
|
| 查看次数: |
13477 次 |
| 最近记录: |