Focusin使用live not working -jQuery

时间:2012-07-08 10:41:35

标签: javascript jquery

我正在尝试使用jquery 1.5.2在未来元素上附加focusin event。只是为了澄清,this has also been attempted using jQuery 1.7.2 with the same issue.

事件没有像我预期的那样被解雇。然而,类似的点击事件可以使用.live

正常工作

我在这里汇总了一个示例供您查看我的代码。希望这不是一个简单的问题(虽然它似乎总是!)。

Link to jsfiddle

这是我试图附加的焦点事件

$(".active").live("focusin", function() {
    $(this).text("focusin using live");
});

我相信我发现了一些相关的问题,但我无法使用它们修复我的代码。我更喜欢对“这是你的代码更正答案”的解释。

如果您认为我需要在我的问题中添加更多信息,请发表评论。

相关

jQuery focusin and focusout live events are not firing

Why the "focusin" event handler isn't called?

1 个答案:

答案 0 :(得分:1)

如果您希望触发focusin事件,则需要关注该元素。您正在应用.active类的DOM元素这一事实并不意味着您正在关注它。

$('.active').live('focusin', function() {
    $(this).text('focusin using live');
});

$('.active').focus();
​

Here's a demo

您将注意到的另一件事是.live()支持从jQuery 1.7.1开始的focusin事件。显然在这个版本的jQuery中,.live()已弃用,您应该使用.on()

$(document).on('focusin', '.active', function() {
    $(this).text('focusin using on');
});

$('.active').focus();