打开后如何在iframe中捕获keydown

时间:2012-03-16 20:58:19

标签: javascript jquery jquery-ui iframe fancybox

Fancybox在iframe中显示pikachoose图像查看器。 键盘键用于在图像之间导航 初始加载键被忽略。 只有在fancybox中单击时,键才会起作用。 我添加了

              $('.pikachoose').focus();

但这不启用密钥。 如果打开iframe,如何允许键立即工作?

iframe内容为:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" <html>
<head>
    <link type="text/css" href="Pikachoose/bottom.css" rel="stylesheet" />
    <script type="text/javascript" src="jquery.min.js"></script>
    <script src="Pikachoose/jquery.pikachoose.full.js"></script>

    <script type="text/javascript">
            $(document).ready(function () {
                $("#pikame").PikaChoose({
                    autoPlay: false
                });

                $("html").keydown(function (evt) {
                    $('#pikame').data('pikachoose').Next();
                });
              // why this does not allow keydown event:
              $('.pikachoose').focus();
            });
    </script>
</head>
<body>
    <div class="pikachoose">
        <ul id="pikame">
            <li>
                <img src="img1" />
            </li>
            <li>
                <img src="img2" />
            </li>
            <li>
                <img src="img3" />
            </li>
        </ul>
    </div>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

您的jQuery选择器用于id,而不是类。

将您的javascript更改为$(".pikachoose").focus()或将class="pikachoose"更改为id="pikachoose"

编辑:

您通常无法聚焦任意元素,例如div。但是有一个伪hack可能会起作用:在元素上放置一个tabindex。您可以使用-1来防止对标签的不必要干扰。因此,要么将tabindex="-1"放在该div上,要么将$(".pikachoose").attr("tabindex", -1).focus()放在代码中。