无法使用jQuery聚焦子元素

时间:2015-08-20 09:23:48

标签: javascript jquery html bxslider

我使用bxSlider,但我无法关注<ul>列表中的子元素。我希望将<div><li>集中在其中。以下是我的 HTML 代码的一部分:

<div class="bx-wrapper" style="max-width: 1308px; margin: 0px auto;">
<div class="bx-viewport" style="width: 100%; overflow: hidden; position: relative; height: 58px;">
    <ul id="jalur" class="jalur" tabindex="21" style="width: 2715%; position: relative; transition-duration: 0s; transform: translate3d(-40px, 0px, 0px);">
        <li id="lix1" style="float: left; list-style: outside none none; position: relative; width: 218px;">
            <div class="fl">
                <div id="e1" class="fl kurohige-prev jaman" data-time="00:30">00:30-01:00</div>
                <div class="fl line-0"></div>
            </div>
        </li>
        <li id="lix2" style="float: left; list-style: outside none none; position: relative; width: 218px;">

        ...
    </ul>   
</div>

我已经尝试将注意力集中在id为{e1&#39;的孩子<div>上,但却失败了。以下是相关的JavaScript代码:

    $(document).on( "keydown", function(event) {
    var key = event.which;
    console.log(key); //39-->right 37-->left, 38-->up 40-->down
    if (key == '39') //success
    {
        var foc = $(':focus');
        $(foc).next().focus();
        console.log(foc);
    }
    else if (key == '37') //success
    {
        var foc = $(':focus');
        $(foc).prev().focus();
        console.log(foc);
    }
    else if (key == '40') //failed
    {
        $('#jalur li').first().focus();
        var foc = $(':focus');
        console.log(foc);
    }
    else if (key == '38') //failed
    {
        $('#jalur').children(":first").focus();
        var foc = $(':focus');
        console.log(foc);
    }
}); 

但是,使用Firebug的命令行我可以转到任何元素:

$('#jalur li').first().focus();

这将提供以下输出:

Object[li#lix1]

我想从data-time="00:30"获取<div>并关注它。

1 个答案:

答案 0 :(得分:1)

焦点不会在<li>上工作。

来自jQuery Docs,

  

此事件隐含地适用于一组有限的元素,例如   作为表单元素(<input><select>等)和链接(<a href>)。

此外,我不知道你想要达到的目的,但

你可以,

$('#jalur li').first().effect('highlight', {}, 1000); 

<强> DEMO