jquery切换打开和关闭2 div

时间:2016-06-14 01:01:09

标签: jquery

我有以下代码来打开和关闭两个单独的div,它们工作正常。然而,我想要实现的是,如果一次潜水打开,我点击打开另一个打开关闭,反之亦然。有人能指出我正确的方向。

      $(document).ready(function(e) { 
       var menuopen = false;
        $("#searching").click(function(e) {
      if (menuopen == false) {
        $("#search").animate({
         top: "111px"
          }, 1000)
    menuopen = true;
   }
    else if (menuopen == true) {
     $("#search").animate({
    top: "-110px"
    }, 1000)
   menuopen = false
  }
 });
  $("#navigation").click(function(e) {
   if (menuopen == false) {
  $("#menu").animate({
    top: "111px"
  }, 1000)
  menuopen = true;
  }
   else if (menuopen == true) {
     $("#menu").animate({
       top: "-410px"
     }, 1000)
     menuopen = false
   }
  });
});

2 个答案:

答案 0 :(得分:0)

这是一个如何工作的概念,也适用于双击等:

  1. 在调用动画之前,您需要设置一个标志,表示动画正在进行中。

  2. 如果设置了此标志,则立即返回,不要调用动画。

  3. 在动画调用中添加一个回调函数(例如complete),重置标志,以便菜单再次负责。

  4. 以某种方式跟踪菜单的状态(变量或类别,表示无论如何需要造型时的状态),以便您知道哪一个必须关闭或打开。

  5. 因此,您可以创建一个函数menuSelected并从所有菜单点击功能中调用它。

    您可以在每次点击时切换,当点击一个菜单时,也会点击另一个菜单,但这很危险,例如如果您一次点击几次,事件可能会叠加,您将看到菜单打开和关闭几次。

答案 1 :(得分:0)

你想要“切换”两个工作动画......

基于此,您可以尝试:

for i := 1 to Application.comaddins.Count  do
begin
if (Application.comaddins[i].Name = addInReference)  then
    begin
    Application.comaddins[i].installed := false;
    Application.comaddins[i].installed := true;
    end;
end;