重点仍然放在现场

时间:2015-07-29 06:56:49

标签: javascript jquery angularjs

我正在试图找出为什么我的重点仍然放在元素上。这是来自我正在使用的autocomplete角度插件的html:

<autocomplete id="search" ng-model="query" attr-placeholder="" click-activation="true" data="items" on-type="updateItems" on-select="searchItems"></autocomplete>

但每次按下回车键无论我是否关注输入字段,甚至是其他字段,都会每次调用on-select函数。

这个东西在插件本身,也许它需要一些改变?

document.addEventListener("blur", function (e) {
    // disable suggestions on blur
    // we do a timeout to prevent hiding it before a click event is registered
    setTimeout(function () {
        scope.select();
        scope.setIndex(-1);
        scope.$apply();
    }, 150);
}, true);

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码监控上次选择的输入字段:

var lastFocusedElement = '';

// This would catch any input field - so you could add your forms selector too.
// for example : $("#myForm:input")
$(":input").focus(function () {
     lastFocusedElement = $(this);
});

然后使用animate中的完整回调函数:

$("#div_NotificationOuter").animate({ bottom: '+=30px' }, 4000,function(){
  if (lastFocusedElement != ''){
    lastFocusedElement.trigger('focus');
  }
});