jQuery悬停问题:1。z指数?2.解除绑定/重新绑定?

jQuery悬停问题:1。z指数?2.解除绑定/重新绑定?,jquery,hover,z-index,unbind,Jquery,Hover,Z Index,Unbind,让我知道这是否真的应该作为两个独立的问题来问,但是由于它处理相同的代码块(在下面的文章中:),我觉得最好只针对一个主题。让我知道我是否应该编辑并将其分成两部分。无论如何,希望你能看看代码。。。我有以下问题: Z指数。因此,正如您在代码中看到的,当您将鼠标悬停在div上时,红色的topIconNew div不会保持静止,但我希望它保持静止。我意识到这是因为它位于html中topTip和topDrop div的下方,所以当它们出现时,它会随之移动。但是,我必须将它放在html中这些div的下面,因为

让我知道这是否真的应该作为两个独立的问题来问,但是由于它处理相同的代码块(在下面的文章中:),我觉得最好只针对一个主题。让我知道我是否应该编辑并将其分成两部分。无论如何,希望你能看看代码。。。我有以下问题:

  • Z指数。因此,正如您在代码中看到的,当您将鼠标悬停在div上时,红色的topIconNew div不会保持静止,但我希望它保持静止。我意识到这是因为它位于html中topTip和topDrop div的下方,所以当它们出现时,它会随之移动。但是,我必须将它放在html中这些div的下面,因为它是相对定位的,所以要让它一致地定位自己无论topIconNew div是否存在,它都需要在html中位于第一位。我想也许我可以通过使用z-index来实现这一切,但是CSS在这里是不够的。jQuery中有什么需要更改的吗

  • 解除绑定/重新绑定。在jQuery代码中,单击topIconNew以获得要显示的topTip和topDrop div时,我有.unbind(“hover”)。我希望在显示topTip和topDrop div时禁用悬停。但是,当尝试在.click(document)函数中使用.rebind(“hover”)时,它仍然无法工作。暂时禁用.hover的最佳方法是什么

  • 关于悬停:如果要删除代码的.unbind(“hover”)行,您会注意到当显示topTip/topDrop div时悬停的行为异常。另一个悬停topTip div在将指针移开时不会隐藏,该div将成为永久性的。在topTip/topDrop div存在的情况下,如果有一个悬停选项仍然可以正常工作,那就太好了(而不是在临时禁用悬停时使用上面提到的方法)。当然,我希望悬停div始终低于打开的topTip/TopDrop div

    无论如何,如果我的问题和/或代码不清楚,请告诉我。另外,如果这样更好的话,我也可以创建另一个将这些问题分开的帖子。无论如何,我们非常感谢您的帮助。。。谢谢


    另外(因为我想我能找出哪里出了问题,所以这一点并不重要),为什么我的.css('background-color:#555555')不起作用?

    对不起,我没有时间对这两个问题给出完整的答案,但这一部分我有一个简单的答案:

    暂时禁用.hover的最佳方法是什么

    我的首选方法是启用
    hoverEnabled
    变量并永久绑定hover处理程序-下面是一个非常通用的示例(替换您自己的选择器和处理):


    显然,这项技术适用于您想要临时禁用的任何事件(也可以用于临时“禁用”
    setInterval
    处理),当然您不必使用,您可以使用
    。单击()
    或任何适当的方法。

    这是一个需要查看的大量文本/代码。我怀疑你的问题能否得到回答。你能把它浓缩成一个简单的测试用例来演示你的问题吗。。。我也这么想。我会努力让它更容易回答,可能只是把它分成两个问题。谢谢你的提醒。我认为你应该把问题分开。还有,你到底想在这里完成什么?我看了你的代码,我不知道最终结果应该是什么。我认为topTip是一个自定义工具提示,但当你到达topDrop时,你已经失去了我。topiconNew的作用是什么?本质上,topIcon是一个导航图标,而topiconNew是一个通知图标。当您单击导航图标时,它会将您带到X页面。将鼠标悬停在topIcon上时,将显示topTip(它将是工具提示),单击topIconNew时,工具提示将展开,并显示一个下拉列表(topDrop)以显示您的通知。这就是我在这里要做的事情的本质。
    $(document).ready(function() {
    
       var hoverEnabled = true;
    
       $("someselector").hover(
          function() {
             if (!hoverEnabled)
                return;
    
             // actual mouse enter processing here
          },
          function() {
             if (!hoverEnabled)
                return;
    
             // actual mouse leave processing here
          }
       );
    
       $("someotherselector").on("some event", function() {
          hoverEnabled = false;
       });
    
       $("someotherselector").on("some other event", function() {
          hoverEnabled = true;
       });
    });