【发布时间】:2013-05-30 05:32:35
【问题描述】:
情况就是这样,我之前也问过这个问题,但我仍然没有让这个工作如我所愿。
我有一个附加到单击事件的复杂函数,该函数进行 AJAX 调用,然后在模式对话框中显示该信息。
虽然我的示例使用的是 jQuery 移动端,但我需要它通过原生 JavaScript 工作,因为我有使用 jQuery 移动端的移动端和不使用任何 jQuery 的桌面端。这不是我想要的,但它也是我无法控制的。
所以,您可以在 JSFiddle 看到我的示例。对于这个示例,我只是使用超时来模拟我遇到的问题。如果您多次单击该链接,它将多次触发该事件。我需要防止这种行为。我已经尝试event.preventdefault 并删除了事件监听器和其他一些东西,但我似乎无法重新附加 onclick。因此,一旦关闭对话框,用户就无法重新使用该链接,如果他们愿意的话。由于此对话框的呈现方式(如果可能),我想尝试将所有这些都包装到一个函数中。
我正在寻找一个简单而优雅的解决方案,但我无法为这个问题找到一个好的解决方案。
谁能提供一些解决方案?
【问题讨论】:
-
你不能添加一个标志,比如 var modalDialogRequestInFlight。这默认为false,但在启动时设置为true,并在显示模态对话框时翻转为false?如果对话框无法显示,您还需要清除标志。如果一个已经在飞行中,则将在“点击”处理程序上检查此标志以防止重复请求。
-
是的,我实际上也尝试过类似的方法,但是我必须使用一些模态。但是,在阅读了这篇文章和 Arun P Johny 的建议之后,我想我可能知道如何让这项工作满足我的需要。感谢您的评论。
标签: javascript onclick onclicklistener