javascript - 当我隐藏输入时,如何防止焦点集中在输入上(jQuery)?

标签 javascript jquery html

我有一个代码,它添加一个带有输入字段值的 li 。该输入上有一个 fadeToggle 函数。我想在它出现时聚焦它,而在它隐藏时不显示它。使用当前代码,它在隐藏之前获得焦点。

$('button').on('click', function (event) {
   $('input[type="text"]').fadeToggle(250).focus();
});

$('input[type="text"]').on('keypress', function (event) {
    if (event.which === 13) {
        if ($(this).val() !== '') {
            var todoText = $(this).val();
            $(this).val('');
            $('ul').prepend('<li>' + todoText + '</li>');
        }
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="container">
  <h1>Groceries</h1>
  <button>add</button>
  <input type="text">
  <ul>
    <li>carrot</li>
    <li>onion</li>
  </ul>
</div>

最佳答案

您需要等待 fadeToggle() 事件完成才能设置焦点。

$('button').on('click', function (event) {
   $('input[type="text"]').fadeToggle( 250 ,function() {
    $(this).focus();
  });
});

http://jsfiddle.net/o5yq4ajn/9/

关于javascript - 当我隐藏输入时,如何防止焦点集中在输入上(jQuery)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49263231/

相关文章:

javascript - Angular 将 js 函数的值读取为未定义,即使该对象具有值

javascript - 收到 AJAX 结果后加载器不会消失

JQuery解析JSON数组

javascript - 使用 jQuery 简单的下一个和上一个显示和隐藏

javascript - 使用 jQuery 向下滑动输入

javascript - 如何在下载高分辨率时显示低分辨率图片?

javascript - 缺少必需的参数 : number error in javascript function

javascript - 在 css 工作表上用数组格式化段落

jquery - 防止浏览器在提交表单时跳转到首页

javascript - 选择的选项有什么问题?