jQuery keydown 事件绑定 - live 与 keydown

发布于 2024-12-03 23:25:22 字数 729 浏览 0 评论 0原文

在 Mac 上的 Chrome、Safari 和 Opera 中,正文实时绑定和文档 keydown 绑定都有效

$(document).ready(function() {
    $("body").append("Focus on this window and press any key");

    $("body").live("keydown", function(event) {
       $("body").append("<p>live on body</p>");            
    });

    $(document).keydown(function() {
       $("body").append("<p>keydown on document</p>");                 
    });
});

。在 Firefox 中,只有文档 keydown 绑定有效。

为什么正文实时事件绑定在 Mac 上的 Firefox 中不起作用?

Mac 10.7.1 铬 13.0.782.220 Safari 5.1 歌剧 11.51 Firefox 6.02

示例测试:http://jsfiddle.net/MikeGrace/qZVg8/3/< /a>

On the Mac in Chrome, Safari, and Opera, both the body live and the document keydown bindings work

$(document).ready(function() {
    $("body").append("Focus on this window and press any key");

    $("body").live("keydown", function(event) {
       $("body").append("<p>live on body</p>");            
    });

    $(document).keydown(function() {
       $("body").append("<p>keydown on document</p>");                 
    });
});

In Firefox, only the document keydown binding works.

Why does the body live event binding not work in Firefox on the Mac?

Mac 10.7.1
Chrome 13.0.782.220
Safari 5.1
Opera 11.51
Firefox 6.02

Example Test: http://jsfiddle.net/MikeGrace/qZVg8/3/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

记忆里有你的影子 2024-12-10 23:25:22

我不是百分百确定,但是将生命束缚在身体上似乎毫无意义。因为实时事件将绑定到正文,然后检查匹配的标签(在本例中为正文)是否触发了事件(keydown)。

live 函数已用于委托体内元素的绑定。

在 Firefox 中,keydown 事件不会在正文上触发,而是在文档上触发。

$(document).bind("keydown", function(event) {
   $("body").append("<p>keydown on document</p>");            
});

I'm not 100% sure, however binding live on a body seems kind of pointless. Because the live event will bind to the body and then check if the matched tag( in this case body) gets the event(keydown) triggered.

the live function has been made to delegate binds for elements within the body.

In firefox the keydown event doesn't trigger on the body, it triggers on the document.

$(document).bind("keydown", function(event) {
   $("body").append("<p>keydown on document</p>");            
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文