jQuery keydown 事件绑定 - live 与 keydown
在 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
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不是百分百确定,但是将生命束缚在身体上似乎毫无意义。因为实时事件将绑定到正文,然后检查匹配的标签(在本例中为正文)是否触发了事件(keydown)。
live 函数已用于委托体内元素的绑定。
在 Firefox 中,keydown 事件不会在正文上触发,而是在文档上触发。
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.