0

我有一个非常简单的 PhoneGap 项目,其中包含一些可以根据需要打开和关闭的消息传递元素。我在这个项目中使用了 jQuery,尽管无论我是否使用 jQuery 来显示/隐藏 div,都会出现我看到的问题。

无论如何,相关标记如下:

        <div class="event listening blink" id="waiting" >
            Waiting for Game
        </div>
        <div class="event listening blink" id="error" >
            Something bad happened...
        </div>
        <div id="running">
            <h1>Shake Me!</h1>
            <div id="deviceready">
                <p class="event listening" id="accelerometer">Waiting for accelerometer...</p>
            </div>
        </div>
        <div id="complete">
            <h1 id="finalStatus">Game Over</h1>
            <div id="myRanking">
                <p class="event listening">You came in 100th place.</p>
            </div>
        </div>

...当页面加载时,我隐藏了所有这些 div,例如:

$("#waiting").hide();
$("#running").hide();
$("#error").hide();
$("#complete").hide();

随着应用程序中发生各种事件,我会显示适当的 div,例如:

$("#waiting").show();

看起来很简单,除了 div 没有重新出现。一旦一个 div 被隐藏,它就会永远隐藏起来。没有抛出 JavaScript 错误,即使我使用document.getElementById("waiting").style.display = 'block';. 我有console.log()声明证实这show()肯定是被调用的。

所以我不知道这是如何/为什么会发生的。过去有没有人遇到过类似的问题?解决方案是什么?

4

1 回答 1

1

我发现了这个问题(有点)。显然 jQuery 与页面上使用的其他一些脚本发生冲突。我不确定是哪一个,或者冲突是什么,或者冲突如何严重到导致element.style.display = 'block';停止工作,但是更改<script>HTML 中标签的顺序可以解决问题。

于 2012-11-19T11:13:28.703 回答