Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过快速单击重新定义变量?_Javascript_Jquery_Html_Javascript Events - Fatal编程技术网

Javascript 通过快速单击重新定义变量?

Javascript 通过快速单击重新定义变量?,javascript,jquery,html,javascript-events,Javascript,Jquery,Html,Javascript Events,我的代码遇到了问题。如果用户非常快地单击,就有可能重新定义原始高度值,而我正努力将其包围。有人能给我指出正确的方向,让我明白为什么这是可能的吗 HTML: JS: 功能释放元件{ 如果原始高度的类型===“未定义”| |标志!==打开{ 原始高度=$'element'。高度; 标志=关闭; } 如果标志===关闭{ flag=打开; 变量高度=$window.height-60; $'element'.stop.animate{height:height}; $'anotherelement'.

我的代码遇到了问题。如果用户非常快地单击,就有可能重新定义原始高度值,而我正努力将其包围。有人能给我指出正确的方向,让我明白为什么这是可能的吗

HTML:

JS:

功能释放元件{ 如果原始高度的类型===“未定义”| |标志!==打开{ 原始高度=$'element'。高度; 标志=关闭; } 如果标志===关闭{ flag=打开; 变量高度=$window.height-60; $'element'.stop.animate{height:height}; $'anotherelement'.stop.animate{marginTop:-205px}; 回来 } 如果标志===打开{ $'element'.stop.animate{height:originalHeight}; $'anotherelement'.stop.animate{marginTop:-105px}; 标志=关闭; 回来 } }
我不是很确定,但请检查您的代码是否需要以下方式的其他

if (flag === "closed") {
      flag = "open";
      var height = ($(window).height() - 60);
      $('#element').stop().animate({height: height});
      $('#anotherelement').stop().animate({marginTop: "-205px"});
      return;
  }
else
  if (flag === "open") {
      $('#element').stop().animate({height: originalHeight});
      $('#anotherelement').stop().animate({marginTop: "-105px"});
      flag = "closed";
      return;
  }

因为如果你的旗帜一开始就关闭了,多次单击它将调用ifflag===关闭,然后一直调用ifflag===打开。

是否存在单击事件?请创建一个代码段来重现特定问题。我的问题是,如果用户在定义if语句完成之前快速单击元素,则可以重新定义原始高度。
if (flag === "closed") {
      flag = "open";
      var height = ($(window).height() - 60);
      $('#element').stop().animate({height: height});
      $('#anotherelement').stop().animate({marginTop: "-205px"});
      return;
  }
else
  if (flag === "open") {
      $('#element').stop().animate({height: originalHeight});
      $('#anotherelement').stop().animate({marginTop: "-105px"});
      flag = "closed";
      return;
  }