javascript - 使用 JQuery,如何区分同一元素上的一次点击和下一次点击?

标签 javascript html jquery

我正在尝试使用 JQuery 实现对 HTML 元素的点击,但我在弄清楚如何使系统了解需要两次不同的点击时遇到问题。我了解如何使其与两个不同的按钮一起工作,但我无法理解如何通过单击该元素使其工作。

例如,当我单击 h3 时,系统会运行这两个函数;它会向上滑动,然后立即向下滑动。我需要单击 h3 并让该函数运行 .slideUp() 并停止。一旦停止,我需要再次单击它来运行 .slideDown()。这是一个类项目,我必须使用以下函数:

animate()
fadeIn()
fadeOut()
slideDown()
slideUp()

这是我的代码:

$(document).ready( function(){
   $('h3').on('click', function(){
     $(this).next().slideUp('slow');
   });

   $('h3').on('click', function(){
     $(this).next().slideDown('slow');
   });
});

最佳答案

使用slideToggle(),删除另一个监听器:

$(document).ready( function(){
   $('h3').on('click', function(){
      $(this).next().slideToggle('slow');
   })
})

如果必须使用 slideUpslideDown,请使用变量:

$(document).ready( function(){
   var shouldOpen = true;
   $('h3').on('click', function(){
      if(shouldOpen) $(this).next().slideDown('slow');
      else $(this).next().slideUp('slow');
      shouldOpen = !shouldOpen;
   })
})

关于javascript - 使用 JQuery,如何区分同一元素上的一次点击和下一次点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61174831/

相关文章:

javascript - DOM 表单值操作

javascript - 如何从 ajax 调用中检索元素

html - ng-水平重复

javascript - Angular : Adding animation when div tag is updated

javascript - CKEditor + IE7+8 'null or not an object' 错误

javascript - 模糊事件不会在 IE7 和 IE6 中触发

javascript - 通过文本选择与cheerio(jquery)选项

HTML 输入模式验证不起作用

javascript - 我想让侧边栏的高度响应内容的高度

javascript - 当其他链接处于事件状态时如何取消其他链接的粗体?