首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么没有调用"focusin“事件处理程序?

为什么没有调用"focusin“事件处理程序?
EN

Stack Overflow用户
提问于 2010-10-28 13:12:11
回答 1查看 3.4K关注 0票数 1

为什么在following code中不调用focusin事件处理程序?

HTML:

代码语言:javascript
复制
<div id='wrapper'></div>
<div id='button'>Click Here</div>
<div id='output'></div>

JS:

代码语言:javascript
复制
$(function() {
    $('input').live('focusin', function() {
        $('#output').html('focusin'); // Why this not happens ?
    });
    $('#button').click(function() {
        $('#button').hide();
        build_inputs();
    });    
});
function build_inputs() {
    var html = "<input type='text' /> \
                <br /> \
                <input type='text' />";
    $('#wrapper').append(html);
    $('#wrapper').fadeIn(500, function() {
        $('input:first').focus();
    });
}

CSS:

代码语言:javascript
复制
#wrapper {
    display: none;
    background: #aaa;
    width: 170px;
    padding: 20px;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-28 13:22:57

出于某些原因,我不确定为什么.focus()不会触发focusin事件。

您可以通过将焦点行更改为添加.trigger('focusin')来复制此行为。

所以你的fadeIn代码变成了:

代码语言:javascript
复制
$('#wrapper').fadeIn(500, function() {
    $('input:first').focus().trigger('focusin');
});

你可以在这里测试它:http://jsfiddle.net/yt7Jd/

EDIT:正如Jason提到的,您还可以调用.focusin()方法而不是.trigger('focusin')

编辑2:它似乎是1.4.3中的一个错误。它已经被jQuery团队记录下来进行修复:http://bugs.jquery.com/ticket/7340

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

https://stackoverflow.com/questions/4039952

复制
相关文章

相似问题

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