Событие Focusout не работает при первой активации входного события jQuery - PullRequest
0 голосов
/ 17 мая 2018

У меня есть вход и focus событие. Когда он сфокусирован, увеличьте родительский div, а когда он не сфокусирован, уменьшите его, но у меня есть событие focusout для входного события, чтобы убедиться, что оно пустое. Но он работает просто отлично, когда вы фокусируете ввод, набираете что-то, удаляете это и затем кликаете от этого ввода (focusout), и тогда это работает так, как я хочу. И он перестает работать после того, как вы обновите сайт, потому что он «забывает», что вы набрали там, и удалил это. Вот jsfiddle, я думаю, мне не нужно публиковать это code,, когда все есть -> https://jsfiddle.net/rnotx7rg/

1 Ответ

0 голосов
/ 17 мая 2018

Если я понял, в чем заключается ваша проблема, я думаю, что вам не нужно событие ввода, но вам нужно только проверить, является ли поле ввода пустым или нет в событии focusout.

Вот часть JS:

$('.emailLog').focus(function() {
  $('.emailLogdiv').css({
    'height': '50px'
 });
   $('.emailLogLabel').css({
    'bottom': '50px',
    'font-size': '1.1em'
 });
 $('.emailLog').css({
    'color': 'black'
  });
});

$('.emailLog').focusout(function() {

  if ($(this).val() === '') {

$('.emailLogdiv').css({
  'height': '6px'
});
$('.emailLog').css({
  'color': '#656565'
});
$('.emailLogLabel').css({
  'bottom': '5px',
  'font-size': '1.5em'
});

 } else {

$('.emailLogdiv').css({
  'height': '50px'
});
$('.emailLog').css({
  'color': 'black'
});
$('.emailLogLabel').css({
  'bottom': '50px',
  'font-size': '1.1em'
});

  }

});

Вот обновленный jsfiddle

...