English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Método de Implementação para Determinar se o Clique Foi em um Label do Input ou em Outro Label no Chrome

Deseja implementar a função: quando o campo de entrada perde o foco e não é clicado o botão de limpeza, execute o método reset para redefinir o estilo do campo de entrada, quando clicar no botão de limpeza, execute o método clear para limpar o conteúdo do campo de entrada.

如图

Eu queria implementar isso com o seguinte código

$(".search-input").focusout(function () {
          if (document.activeElement.className !== 'close-t') {//close-t é o nome da classe do botão de limpeza
            $('.search-input').addClass('search-before');
            $('.close').css('display', 'none');
            document.getElementById('search').value = '';
          }
});

Além disso, quando o campo de entrada perde o foco, o primeiro a obter o foco é a tag body, por isso, este método não funciona, e, finalmente, o seguinte código é usado para implementar essa função

$("#search").focusout(function () {
  //Verifique se foi clicado no botão de limpeza após a perda de foco, se for, não redefina
  var tapCloseButton = false;
  $('.close-t').focus(function () {
    tapCloseButton = true;
  });
  setTimeout(function () {
    if (!tapCloseButton) {
      $('.search-input').addClass('search-before');
      $('.close').css('display', 'none');
      document.getElementById('search').value = '';
    }
  ,10);
});

A operação de julgamento da focagem é adiada, portanto, neste momento, o foco já foi removido do body e colocado no elemento realmente clicado, e então julgue a focagem novamente, para ver se é a tecla de limpeza.

Aqui está a implementação completa do método de�断定在chrome下点击input标签还是其他标签,由小编分享给大家,希望能给大家提供一个参考,也希望大家多多支持呐喊教程。

Você também pode gostar