项目用的$.modal.open(title,url,,600, 550)做的创建模态框,默认效果是点击模态框外,会关闭弹窗。
需求:点击遮罩不关闭弹出框。
百度的是,有两种办法
①使用在标签上添加 data-backdrop=“static”,
②使用jq对弹出框设置代码:
$("#myModal").modal({backdrop:‘static’});
但是项目不熟,有的模块使用了第一个方式生效了,有的模块实在是没找到标签是写在哪个子组件里了。在浏览器的开发者工具里找到了模态框的类名,但是使用第二种方式不知道为什么也没有生效。
记录一个取巧的方式:
在$.modal.open()后面使用:
$(".xxxx").unbind();
效果是样式class为xxxx的都解除点击事件包括双击,注意类名是遮罩的类名,这样点击遮罩就不会有任何效果。
各人理解:模块化,每一个弹窗按钮都是模块,最后渲染在一起,相当于注册进入了一个html,当前小组件中找不到的时候它会向父类中寻找直到找到最上层。相当于整个项目最上层创建了一个参数 $ ,代表ui。.modal就是从这个最顶层那里调用modal,这个组件页面没找到$,就去上一级找$,一直找到找到为止,最上级也没找到那就报错了。
还有要注意模态框的关闭,是隐藏还是将其销毁,如果是隐藏的话,遮罩的unbind()还在,就要小心有其他影响。销毁的话,应该就不会有什么问题了。