jquery - 如何使用纯 jQuery 延迟移除字段焦点?

标签 jquery focus delay settimeout blur

请考虑以下代码:

  //Focus on the field on page load.
  $("#user_login").focus();

  //Remove prompt after a couple of seconds.
  window.setTimeout(function() {
    $("#user_login").blur();},
  3000);

我有几个工具提示和其他事件与焦点上的 #user_login 输入相关。但为了不惹恼用户,我想在几秒钟后删除焦点。

这是我现在正在做的一种方式 - 据我所知,delay() 在这种情况下不起作用。还有其他纯 jquery 方法可以做到这一点吗?大致如下:

$("#user_login").focus().delay(3000).blur();

谢谢

附注: 我的解决方案现在工作得很好,这更多的是出于教育目的。

最佳答案

delay() 仅适用于动画。

制作一个插件:

(function($) {
    $.fn.promptTooltip = function(duration) {
        $this = $(this);
        $this.focus();
        setTimeout(function() {
            $this.blur();
        }, duration);
    };
})(jQuery);

使用插件:

$('#testme').promptTooltip(3000);

这是一个愚蠢的演示:http://jsfiddle.net/AlienWebguy/gKECa/

关于jquery - 如何使用纯 jQuery 延迟移除字段焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772483/

相关文章:

javascript - 当鼠标悬停在单词上时获取单词

javascript - 如何制作 jQuery UI 可放置列表,其中添加到列表中的元素也是放置目标

javascript - 为什么要调用 jQuery 的 unbind ('change' ) 方法来触发更改事件?

javascript - window.focus() 不适用于 setInterval()

javascript - CSS,jQuery - 延迟失去最小高度的焦点

css - 使用点击/点击事件禁用 CSS3 延迟转换

javascript - JQuery FullCalendar 添加事件

jsf - Primefaces:输入文本/覆盖面板/保持焦点

css - OnLoad 和调整大小 css 中断

javascript - 短时间后更改回图像源