JQuery自动完成:获取当前关注的<li> </li>

时间:2013-02-01 21:52:54

标签: jquery jquery-ui jquery-autocomplete jquery-ui-autocomplete

当用户鼠标悬停或以其他方式突出显示其<li>个选项时,

JQuery Autocomplete会触发焦点事件。在这个事件中,我想引用当前关注的<li>,但我无法弄清楚如何选择它。目前,我有:

focus: function( event, ui ) {
  var target = event.currentTarget
  alert($(target).html())
}

但是这会返回<li> s的整个列表,而不仅仅是当前关注的列表。我尝试过其他事件方法,例如event.delegateTarget和event.target,但没有成功。是否有其他方法可以获得重点元素?

2 个答案:

答案 0 :(得分:8)

你将不得不:

  1. 抓取自动填充正在使用的菜单小部件。
  2. 获取当前关注的li(此li有一个a,其中包含课程ui-state-focus

    focus: function (event, ui) {
        var menu = $(this).data("uiAutocomplete").menu.element,
        focused = menu.find("li:has(a.ui-state-focus)");
        // focused is the focused `li`
    }
    
  3. 示例: http://jsfiddle.net/J5rVP/43/

答案 1 :(得分:1)

使用以下内容时是否有任何缺点?

focus: function(event, ui) {
    $(".ui-autocomplete li").removeClass("ui-state-hover");
    $(".ui-autocomplete").find("li:has(a.ui-state-focus)").addClass("ui-state-hover");
}