【问题标题】:JQuery .show() works only from click eventJQuery .show() 仅适用于点击事件
【发布时间】:2017-06-10 22:08:42
【问题描述】:

我正在尝试使用 two.js 编写一个简单的游戏。我有一个从按钮单击事件和游戏循环调用的函数:

function endGame(gameLoop){
    showStartGame();
    gameLoop.pause();
    $("#gameSquare svg:first").remove();
    $("#startGame").show();
}

$("#startGame").show() 行只有在从事件调用时才能正确执行,其余的在这两种情况下都可以正常工作。

点击事件处理程序:

$("#abandonGame").click(function(){
  endGame(two);
  gameLoopPaused = true;
  gameStarted = false;
});

调用不正常(this.update() 在游戏循环中被调用):

this.update = function(){
var computedVector = new Two.Vector(0,0);
screens.forEach(function(screen){
screen.update(speed);
screen.getRectangles().forEach(function(item){
  computedVector.x = item.rect.translation.x;
  computedVector.y = item.rect.translation.y + screen.getPosition().y;
  if(computedVector.distanceTo(new Two.Vector(ship.getX(), ship.getY())) < latura + 20)
    endGameEvent();
});

【问题讨论】:

  • 点击事件处理程序是什么样的?
  • @EduardMalakhov 我已经添加了。
  • 控制台有错误吗?
  • 那endGame不工作怎么调用呢?
  • @DuongDang Nope

标签: javascript jquery css dom two.js


【解决方案1】:

问题出在 $("#startGame") 的父级上,它也被隐藏了。它适用于事件,因为当我点击 $("#abandonGame") 按钮时,它已显示在屏幕上。

【讨论】:

    【解决方案2】:

    尝试将其包装在 document.ready 中

    $(document).ready(function() {
        $("#startGame").show();
    });
    

    你不能在对象存在之前调用 show()

    【讨论】:

      猜你喜欢
      • 2013-06-24
      • 1970-01-01
      • 2022-01-24
      • 2019-07-29
      • 1970-01-01
      • 2013-05-02
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多