【问题标题】:Show/Hide Particular Div on hover and Hide a div on mouse out在悬停时显示/隐藏特定 div 并在鼠标移出时隐藏 div
【发布时间】:2014-10-06 07:41:56
【问题描述】:

我必须在单击兄弟上的按钮时执行隐藏和显示 div 的操作。

但是,该操作也在其他 div 中发生。您可以在下面的链接中看到它。

这是小提琴(http://jsfiddle.net/NKC2j/1767/)。

我使用的脚本,

    $(".panel").hide();
    $(".two").hide();

    $(document).ready(function(){
      $(".slidedown").click(function(){
        $(".panel").slideDown("slow");
        $(".one").hide();
        $(".two").show();
      });
      $(".slideup").click(function(){
        $(".panel").slideUp("slow");
        $(".two").hide();
        $(".one").show();
      });
    });

我需要的输出是,

  1. 该操作必须针对单独的盒子,而不是一次针对所有盒子。 (即,当单击添加按钮时,橙色框显示在所有黑框中,而不是仅显示一个框。)

  2. 当鼠标离开黑框时,类 (one) 隐藏,而 (middle-text) 显示。但是,在点击添加和取消并鼠标移出后,类(一)并没有隐藏。

【问题讨论】:

  • 首先找到当前按钮的封闭产品,var $container = $tab.closest('.sep-prod');然后对其下的元素进行操作 var $contents = $container.find('[data-content]');这可以帮助你。
  • 你可以让它在我制作的小提琴中工作吗?
  • 我已经更新了你的小提琴。请检查。如果小提琴没有正确反映,请告诉我。
  • 如果jsfiddle.net/NKC2j/1768 是您的链接,则根本不起作用,兄弟!

标签: jquery


【解决方案1】:

我为你做了一个工作小提琴: http://jsfiddle.net/NKC2j/1780/

$(".sep-prod").each(function(){
    $(".one,.two,.panel").hide();
        $(this).hover(function(){
            $(this).find(".middle-desc").hide();
            $(this).find(".one").show();
        },function(){
            $(this).find(".one,.two,.panel").hide();
            $(this).find(".middle-desc").show();
    });  
});

$(".slidedown").click(function(){
      $(this).parents().eq(1).find(".one").hide();
      $(this).parents().eq(1).find(".two").show();
      $(this).parents().eq(1).children(".panel").slideDown("slow");
});

通过使用 jquery each 函数,您可以仅将隐藏/显示应用于当前悬停的元素。 在 click 函数中,您使用 $(this).parents().eq(1) 遍历两个父级的 dom,然后找到该父级具有“.panel”类的子级。

$(this).parents().eq(1).find(".one").hide();

如果您希望 .panel 在悬停后向上滑动,则可以这样做: http://jsfiddle.net/NKC2j/1781/

【讨论】:

【解决方案2】:

您需要识别给定产品的容器。像这样的东西。

  $(".slidedown").click(function(event){
      var $productContainer = $(event.target).closest('.sep-prod'); 
    $productContainer.find(".panel").slideDown("slow");
    $productContainer.find(".one").hide();
    $productContainer.find(".two").show();
  });
  $(".slideup").click(function(){
      var $productContainer = $(event.target).closest('.sep-prod'); 
    $productContainer.find(".panel").slideUp("slow");
    $productContainer.find(".two").hide();
    $productContainer.find(".one").show();
  });
});

【讨论】:

  • 谢谢你的努力,兄弟! jsfiddle.net/NKC2j/1782 是我需要的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
  • 2011-02-12
  • 2013-02-18
相关资源
最近更新 更多