首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.shake()触发模糊事件

.shake()触发模糊事件
EN

Stack Overflow用户
提问于 2011-09-02 00:49:22
回答 3查看 300关注 0票数 0

这是我的html:

代码语言:javascript
复制
<div><input/></div>

这是我的jQuery:

代码语言:javascript
复制
$('input').focus();
$('input').blur(function () { console.log('BLUR!'); });
$('div').effect('shake');

请参阅http://jsfiddle.net/kN7tr/

在某种程度上,抖动效应触发了模糊事件。真烦人。有什么建议吗?

编辑:下面的情况类似于http://jsfiddle.net/kN7tr/1/

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-02 01:23:12

经过一番挖掘,看起来这就是罪魁祸首http://bugs.jqueryui.com/ticket/7595

这就是解决办法:

代码语言:javascript
复制
// Fixes #7595 - Elements lose focus when wrapped.
if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
    $( active ).focus();
}

(如果你感兴趣的话,在1.8.16的第4425行-这条评论是误导性的,因为它指的是装潢师(与文字包装或其他任何东西无关))

小提琴有1.8.14,这是报告的错误。

此修复程序如1.8.16所示,可在Google上使用(显然,如果您下载了最新版本)。

票数 2
EN

Stack Overflow用户

发布于 2011-09-02 01:07:25

您可以在focus动画完成后将shake设置为输入。

代码语言:javascript
复制
$('div').effect('shake', function(){
    $('input').focus();
});

工作演示

这方面的工作是将blur事件附加到shake回调中,并在其中设置focus。我真的不明白为什么focus要消失了,这就是为什么blur在开火。我希望这件事对你有帮助。

工作演示

代码语言:javascript
复制
$('input').effect('shake', function(){
    $('input').focus();
    $('input').blur(function () { console.log('BLUR!');
    });
});
票数 0
EN

Stack Overflow用户

发布于 2011-09-02 02:33:27

现场演示

代码语言:javascript
复制
var $focusElement;

// Keep track of the element that was focused
$(":input").focus(function () {
     $focusElement = $(this);
});

$('input').focus();
$('input').blur(function () { console.log('BLUR!');
});

$('div').effect('shake', function(){
        // Refocus the element
        $focusElement.focus();
    });

丑陋的黑客,这也是张贴在震颤效果杀死焦点,它是确定这是一个错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7278221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档