为什么我必须重新加载页面才能让我的 JS 事件工作?

安吉拉·英尼斯

您好,我为我的主页创建了一个点击导航栏。我希望用户点击然后导航栏打开。我的代码确实可以工作,但是它只能工作一两次,然后在我刷新页面之前第三次无法工作。

有人知道为什么吗?

var sliderMenu = document.getElementById("slider-menu");
var close = document.getElementById("X");


sliderMenu.addEventListener("click", (event) => {
  activate();
  console.log(event)
});

close.addEventListener("click", (event) => {
  closeNav();
});


function activate(event) {
  var sliderMenuOpen = document.getElementById("slider-menu-open");
  sliderMenuOpen.classList.toggle("width");
}

function closeNav(event) {
  var sliderMenuOpen = document.getElementById("slider-menu-open");
  sliderMenuOpen.classList.toggle("width-close");
}
<div class="slider-menu" id="slider-menu">
  <p>More</p>
</div>
<div class="slider-menu-open" id="slider-menu-open">
  <a id="X" href="">X</a>
  <a href="">Carpet Cleaning</a>
  <a href="">Blinds</a>
  <a href="">Flooring</a>
  <a href="">Rugs</a>
</div>
</div>

格罗弗。

尝试这样的事情。它消除了对额外课程的需要width-close

// i moved this to outside the functions so that you don't have to keep
// unnecessarily setting sliderMenuOpen
var sliderMenuOpen = document.getElementById("slider-menu-open");

var sliderMenu = document.getElementById("slider-menu");
var close = document.getElementById("X");
sliderMenu.addEventListener("click", (ev)=>{
    sliderMenuOpen.classList.add("width");
});
close.addEventListener("click", (ev)=>{
    sliderMenuOpen.classList.remove("width");
});

如果您使用旧代码检查 DOM,您会注意到在单击关闭和打开几次后它们都会在错误的时间处于活动状态(或非活动状态)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我必须删除 resolvconf 才能让 dnsmasq 再次工作?

来自分类Dev

为什么我的js仅在刷新页面后才能正常工作?

来自分类Dev

为什么我必须加上括号才能使联合工作

来自分类Dev

我怎样才能让 Jquery 为这个页面工作

来自分类Dev

为什么我的元素需要点击才能让 CSS 工作?

来自分类Dev

为什么我需要jquery.min.js而不是jquery.js才能使脚本正常工作?

来自分类Dev

为什么我需要jquery.min.js而不是jquery.js才能使脚本正常工作?

来自分类Dev

JS 代码在我的页面上工作但不在小提琴上,为什么?

来自分类Dev

必须重新启动pulseaudio才能让耳机工作

来自分类Dev

为什么我必须点击两次才能触发事件?

来自分类Dev

为什么我的 node.js 应用程序在重新加载/刷新时会收到“无法获取/页面”错误?

来自分类Dev

为什么我必须抑制错误才能使函数正常工作

来自分类Dev

为什么我必须为 QLabel 动态分配内存才能使其工作?

来自分类Dev

我怎样才能让这些循环工作?我究竟做错了什么?

来自分类Dev

重新连接到端口后,node.js serialport事件停止工作

来自分类Dev

不能让我的对象加载器工作

来自分类Dev

Selectize.js事件-无法正常工作

来自分类Dev

JS 无法让事件监听器工作

来自分类Dev

为什么我不能将我的 JS 事件应用于我的 EJS 代码?

来自分类Dev

我怎样才能让我的会话 ID 工作

来自分类Dev

单击事件时页面重新加载 - React JS

来自分类Dev

为什么我的decoration.errorText 返回null?我是否必须模拟我的集团才能测试我的验证器是否正常工作?

来自分类Dev

我怎样才能让Vim正确执行JS缩进?

来自分类Dev

声音停止了,我必须重新启动才能使其重新工作

来自分类Dev

为什么我的加载无法正常工作

来自分类Dev

我怎样才能让这个 .slideToggle 方法工作?

来自分类Dev

MYSQL - 我怎样才能让这个左连接工作?

来自分类Dev

我怎样才能让条纹在 prestashop 上工作?

来自分类Dev

在Node.js上收到“更改” +“更改”事件后,Azure工作人员角色重新启动

Related 相关文章

  1. 1

    为什么我必须删除 resolvconf 才能让 dnsmasq 再次工作?

  2. 2

    为什么我的js仅在刷新页面后才能正常工作?

  3. 3

    为什么我必须加上括号才能使联合工作

  4. 4

    我怎样才能让 Jquery 为这个页面工作

  5. 5

    为什么我的元素需要点击才能让 CSS 工作?

  6. 6

    为什么我需要jquery.min.js而不是jquery.js才能使脚本正常工作?

  7. 7

    为什么我需要jquery.min.js而不是jquery.js才能使脚本正常工作?

  8. 8

    JS 代码在我的页面上工作但不在小提琴上,为什么?

  9. 9

    必须重新启动pulseaudio才能让耳机工作

  10. 10

    为什么我必须点击两次才能触发事件?

  11. 11

    为什么我的 node.js 应用程序在重新加载/刷新时会收到“无法获取/页面”错误?

  12. 12

    为什么我必须抑制错误才能使函数正常工作

  13. 13

    为什么我必须为 QLabel 动态分配内存才能使其工作?

  14. 14

    我怎样才能让这些循环工作?我究竟做错了什么?

  15. 15

    重新连接到端口后,node.js serialport事件停止工作

  16. 16

    不能让我的对象加载器工作

  17. 17

    Selectize.js事件-无法正常工作

  18. 18

    JS 无法让事件监听器工作

  19. 19

    为什么我不能将我的 JS 事件应用于我的 EJS 代码?

  20. 20

    我怎样才能让我的会话 ID 工作

  21. 21

    单击事件时页面重新加载 - React JS

  22. 22

    为什么我的decoration.errorText 返回null?我是否必须模拟我的集团才能测试我的验证器是否正常工作?

  23. 23

    我怎样才能让Vim正确执行JS缩进?

  24. 24

    声音停止了,我必须重新启动才能使其重新工作

  25. 25

    为什么我的加载无法正常工作

  26. 26

    我怎样才能让这个 .slideToggle 方法工作?

  27. 27

    MYSQL - 我怎样才能让这个左连接工作?

  28. 28

    我怎样才能让条纹在 prestashop 上工作?

  29. 29

    在Node.js上收到“更改” +“更改”事件后,Azure工作人员角色重新启动

热门标签

归档