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

时间:2016-05-15 19:05:32

标签: 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()除外。

我确信答案很简单。

1 个答案:

答案 0 :(得分:1)

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

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

效果提示(如果可能,则为cource - 在DOM中元素可能是唯一的):

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