这比我知道违背事物精神的通常问题要抽象一些,但我希望我仍然能得到一个好的回应。
这就是问题所在。我们有一个用 PHP 编写的相当复杂的 Web 应用程序。目的相对不重要,但简单地说:我们正在使用 Comet / AJAX / JSON / JavaScript / PHP / MySQL(没有 jQuery,但是,只有原生 JavaScript)来呈现实时显示数据的控件。在整个应用程序中,我们使用原生 JavaScript呈现弹出模式。这是相当复杂的逻辑,它会测试页面上是否存在同名模式并阻止创建相同的新版本,当然,一旦创建,就会创建一个层以防止与下面的链接交互。
问题是我们至少有一个模式可以在页面上呈现之前被多次调用,因为 AJAX 调用从数据库收集数据并将其组装以进行演示需要时间。如果用户要“双击”所述链接,他们将看到两个模态,一个在另一个之上。我已经能够实际渲染其中的 8-10 个。与最顶部的模态交互似乎被破坏了,因为用户实际上正在影响最底部模态的可折叠标题。一旦您开始关闭对话框并到达底部,您就可以看到您单击的位置。
所以,我的问题是:防止这种行为的最佳方法是什么?
我考虑过简单地向 onClick 事件添加一个函数,该函数将在第一次单击后从链接中删除 onClick 属性,并带有轻微的超时(比如 500 毫秒)。我还考虑过尝试实现位测试逻辑,该逻辑将计算点击次数,并且仅在第一次点击后实际首先发生事件,并在模式关闭时重置。
我想知道是否有人有任何想法或建议,甚至已经解决了类似的问题,并且对在这种情况下实现我的目标的最佳实践有一些见解。
非常感谢你。