当其他元素被点击时,模糊(取消聚焦)一个元素


document.addEventListener("click", function (e) {
var filter = document.getElementById('filter');
  if (e.target !== filter[0]) {
    filter.blur();
  }
});

我的尝试^^

jQuery代码:

$(document).on('click', function(e) { 
  if (e.target !== $('#filter')[0]) 
  $('#filter').blur();
});

当点击除#filter以外的任何元素时,我想模糊(取消聚焦)#filter

您不需要将getElementById的结果与[0]解引用-结果已经是单个元素。

[0]仅在jQuery中是必要的,因为jQuery的结果总是伪数组,即使只有一个匹配的元素。

如果在页面上的每次单击都调用该函数,请考虑将filter的定义移到函数之外,这样您就不必在每次单击时重新计算它(假设元素是静态的)。

相关内容

  • 没有找到相关文章

最新更新