jQuery - 尝试事件捕获一个元素w / keypress(或离开div)的模糊,不能

时间:2013-01-25 07:17:50

标签: javascript jquery

注意:

我相信我找到了我的解决方案,对不起这篇长篇文章感到抱歉: 我在最后一个li的最后一个href上使用“focusout”。似乎到目前为止工作。

 var lastLi = jQuery("#items").find('li:last');
 jQuery(lastLi).last('a').focusout(function(eve){
    // close em'
 });

所以,我正在创建一些代码来通过CSS菜单进行选项卡。因此,我需要知道使用tab通过菜单项的人。当他们离开最后一个链接(下面的代码中的最后一个LI)并移动到下一个导航项(可能存在的链接)时,我的工作非常好。菜单坚持(保持打开状态)。我可以轻松地在该链接上放置一个密钥并只关闭之前的菜单,但因为该网站是动态的,那些“其他链接”可能不存在所以我无法真正计划跟随的链接。

我希望能做到

jQuery('#itemsForSale').bind('blur', function() {//close menu})

没有运气。

所以这是一段代码。

<ul id='siteNavigation'>
    <li id="itemsForSale">
       <div id="items">
          <ul id='itemNav'>
             <li>
                 <div id="menu1">
                    <ul>
                       <li>menu 1 item 1</li>
                       <li>menu 1 item 2</li>
                    </ul>
                 </div>
             </li>
             <li>
                  <div id="menu2">
                    <ul>
                       <li>menu 2 item 1</li>
                       <li>menu 2 item 2</li>
                    </ul>
                 </div>
             </li>
          </ul>
       </div>
    </li>
    <li>Link that Might exist</li>
    <li>AnotherLink that Might exist</li>
</ul>

所以,因为最后两个li可能会或者可能不存在,我试图在id“itemsForSale”上捕获“模糊”事件 - 没有运气。似乎没有“关键”事件。当我退出这个特定的li id =“menu 2 item 2”或者父li id =“itemsForSale”时,有没有办法知道通过tabing?

请注意,我几乎所有的其他标签等......工作得很好。但是,当用户到达最后一个项目时(在上面的例子中:菜单2项目2)并离开它,如何知道。

我也试过捕捉“itemsForSale”中的“最后一个LI” - 这也是一个不行。模糊只是似乎没有工作。我也尝试过使用setTimeout,nada。有什么建议吗?

注意:请记住,我必须使用Tab键或“shift tab”进行此确定。

jQuery("#items").find('li:last')

1 个答案:

答案 0 :(得分:0)

你可以查看focus事件,然后确定刚聚焦的元素是否是菜单的子元素?