Javascript jquery委托密钥更新不工作

Javascript jquery委托密钥更新不工作,javascript,jquery,delegation,Javascript,Jquery,Delegation,我正在创建一个附加在文档中的幻灯片。我隐藏了主体并将幻灯片附加到主体元素之外。我不想关闭“退出”按钮上的幻灯片放映 页面结构如下所示: <html style="height: 100%;"> <body style="display: none;"></body> <div class="slideshow"></div> </html> 如果我将keyup更改为启用单击,则它可以在此处显示警报,但不会委

我正在创建一个附加在文档中的幻灯片。我隐藏了主体并将幻灯片附加到主体元素之外。我不想关闭“退出”按钮上的幻灯片放映

页面结构如下所示:

<html style="height: 100%;">
    <body style="display: none;"></body>
    <div class="slideshow"></div>
</html>

如果我将
keyup
更改为启用
单击
,则它可以在此处显示警报
,但不会委派keyup。忽略esc警报,如果我在未显示之前添加了警报,那么问题不在escape key代码中。

据我所知,您不能这样做。这是因为
文档
无法确定
键控
事件是从
幻灯片
触发的,除非幻灯片包含任何输入字段,并且您键入了一些内容。

您可以将div替换为“input”标记,该标记提供了一个输入框,因此当您键入内容时,然后将触发警报

<body style="display: block;">
    <input class="slideshow"/>
</body>

$(document).ready(function () {
    $('.slideshow').keyup(function (e) {
        alert("Here");
        if (e.keyCode == 27) {
            alert("Escape");
        };
    });
});

$(文档).ready(函数(){
$('.slideshow').keyup(函数(e){
警报(“此处”);
如果(e.keyCode==27){
警惕(“逃跑”);
};
});
});

你的
幻灯片
div在
主体标记之外。是的,我知道,我该怎么办?如果它在主体标记之外,那么它就无效。如果你将其用于练习,请尝试“单击”而不是“键入”,原因已由@bingjie2680给出
<body style="display: block;">
    <input class="slideshow"/>
</body>

$(document).ready(function () {
    $('.slideshow').keyup(function (e) {
        alert("Here");
        if (e.keyCode == 27) {
            alert("Escape");
        };
    });
});