javascript - JQuery hide() 在 show() 之后不起作用,反之亦然

标签 javascript jquery

有人提出了这个问题的各种变体,但似乎大多数都是使用 toggle() 方法解决的。我的场景有所不同,hide()show() 应该由两个不同的事件驱动,即创建新游戏和赢得游戏。我不希望每个事件只做一件事,因此 toggle() 不合适。

我使用 socket.io 在服务器和浏览器之间进行通信。一切都正确加载以开始。问题是在赢得上一场比赛后尝试开始新比赛。相关的 JavaScript 看起来像这样:

$(document).ready(function() {
   socket.on('gameOver', function() {
      $('.yourStatus').hide(700);
      $('.winner').show(700);
   });
   $('button.newGame').on('click', function() {
      $('.winner').hide;
      $('.yourStatus').show;
   });
});

当游戏通过 socket.io 事件结束时,一切都会正常进行。除了 hide()show() 之外,按钮单击事件函数中的其他所有内容都可以正常工作。

我确信这个问题的答案会非常简单。

最佳答案

您应该使用括号(调用函数):

$(document).ready(function() {
   socket.on('gameOver', function() {
      $('.yourStatus').hide(700);
      $('.winner').show(700);
   });
   $('button.newGame').on('click', function() {
      $('.winner').hide();
      $('.yourStatus').show();
   });
});

性能提示(当然,如果可能的话 - 元素在 DOM 中可以是唯一的):

如果你用哈希声明你的“.winner”会更好。例如:<div id="winner"/>并在分隔符 jQuery 中使用:$("#winner")

关于javascript - JQuery hide() 在 show() 之后不起作用,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37242517/

相关文章:

javascript - R shiny 中的绝对面板隐藏在传单输出后面

javascript - 如何从 JQuery AJAX 调用返回多个值?

javascript - 从下拉列表中选择数据时从 MYSQL 数据库设置输入字段值属性

javascript - 如何访问嵌套在 h1 标签中的 img 标签元素

jquery - jQuery 中的动画粘性导航问题

javascript - JQuery 事件在异步回发时不起作用,在第二次回发时修复,在第三次回发时中断

jquery - 从 div 中删除最后一个分隔符

javascript - group by 在 sequelize 中是如何工作的?

javascript - 如何使用jquery添加弹出窗口?

javascript - Meteor TypeError : braintree. 设置不是一个函数