我试图根据屏幕大小在菜单上应用SlideTogger函数,但这段代码只需一次点击就可以多次应用该函数,try 了这里的所有解决方案,但都不起作用.

我知道问题是一个窗口内的点击事件调整大小,但应用程序应该是这样的,所以请我需要一个替代的解决方案来有一个工作代码.

$(window).on("resize", function () {
  if (screen.width < 768) {
    $(".part-heading").click(function (e) {
      $(this).next(".sections").slideToggle("slow");
    });
  }
});

推荐答案

您正在注册多个事件侦听程序,每次屏幕大小更改时都会注册一个.当你点击的时候,它们都会运行.您可以按如下方式更改您的脚本,因此请在每次单击时判断大小,而不是观看调整大小:

$(".part-heading").click(function (e) {
  if (screen.width < 768) {
    $(this).next(".sections").slideToggle("slow");
  }
});

Javascript相关问答推荐

如何使图像逐渐/平稳地响应(先减少宽度,然后减少高度)

Tailwind-Elements React集成到ClojureScript

可以将SuperTest导入为ES 6模块吗?

TestCafe预计文本等于以下内容之一

响应式JS DataTable中的Bootstrap 5弹出程序无法正常工作

以逗号分隔的列表来数组并填充收件箱列表

Angular material 表多个标题行映射

橡皮擦完全让画布变成白色

Google图表时间轴—更改hAxis文本 colored颜色

jQuery提交按钮重新加载页面,即使在WordPress中使用preventDefault()

显示图—如何在图例项上添加删除线效果?

编剧如何获得一个div内的所有链接,然后判断每个链接是否都会得到200?

保持物品顺序的可变大小物品分配到平衡组的算法

TypeError:无法分解';React2.useContext(...)';的属性';basename';,因为它为空

在使用REACT更改了CSS类之后,无法更改CSS样式

同一类的所有div';S的模式窗口

Jest toHaveBeenNthCalledWith返回当前设置的变量值,而不是调用时的值

自定义图表工具提示以仅显示Y值

背景动画让网站摇摇欲坠

判断函数参数的类型