php – 如何防止模态多次被绘制?

这比我认为违背事物精神的常见问题更抽象,但我希望我仍能得到很好的回应.

这是问题所在.我们有一个用PHP编写的相当复杂的Web应用程序.目的是相对不重要的,但简单地说:我们使用Comet / AJAX / JSON / JavaScript / PHP / MySQL(没有jQuery,但只有原生JavaScript)来呈现实时显示数据的控件.在整个应用程序中,我们使用本机JavaScript呈现弹出模式.这是一个相当复杂的逻辑,它测试页面上是否存在具有相同名称的模态,并阻止创建相同名称的新版本,当然,一旦创建,就会创建一个图层以防止与下面的链接进行交互.

问题是我们至少有一个模式在页面呈现之前可以多次调用,因为AJAX调用从数据库中收集数据并将其组装以进行呈现所需的时间.如果用户在所述链接上“双击”,则将呈现两个模态,一个在另一个上面.我已经能够实际渲染8-10个.与最顶层模态的交互似乎被打破,因为用户实际上在最底部模态上影响可折叠标题.一旦开始关闭对话框并到达底部,您就可以看到您点击的位置.

所以,我的问题是:防止这种行为的最佳方法是什么?

我已经考虑过简单地向onClick事件添加一个函数,该函数会在第一次点击之后从链接中删除onClick属性(例如500ms).我还考虑过尝试实现可以​​计算点击次数的位测试逻辑,实际上只是在第一次点击后首先发生事件,并在模态关闭时重置.

我想知道的是,如果有人有任何想法或建议,甚至已经解决了类似的问题,并且在这种情况下对实现我的目标的最佳实践有一些了解.

非常感谢你.

最佳答案
您可以在点击处理程序触发后取消注册:

var element = ...,myClickHandler = function(event) {
    // ...
    element.removeEventListener('click',myClickHandler,false);
    // ...
}

element.addEventListener('click',false);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)