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

JQuery hide() not working after show() and vice versa

本文关键字:不起作用 反之亦然 之后 hide JQuery show      更新时间:2023-09-26

有人提出了这个问题的变体,但似乎大多数问题都是使用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中可能是唯一的):

如果你用hash声明你的".winner"就更好了。例如:<div id="winner"/>和在分隔符中使用jQuery:$("#winner")