jQuery keydown事件绑定 - live vs keydown

时间:2011-09-12 03:39:48

标签: jquery javascript-events cross-browser key-bindings

在Chrome,Safari和Opera中的Mac上,正文和文档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 Chrome 13.0.782.220 Safari 5.1 歌剧11.51 Firefox 6.02

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

1 个答案:

答案 0 :(得分:1)

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

实时函数用于委托正文中元素的绑定。

在firefox中,keydown事件不会在正文上触发,它会在文档上触发。

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