offcanvas 是 bootstrap 提供的对话框(模态框)。在项目中使用了bootstrap 提供的对话框 功能显示数据。使用过程中发现一个奇怪的问题:
1. 如果在HTML中没有在对话框的class中设置show,通过jquery的show方法不能显示对话框;2. 如果在class中设置了show,则在显示主页面的同时也会显示对话框。试着通过JS在显示页面时就关闭对话框, 通过jquery的hide()还关闭不了,通过bootstrap.getinstance()方法获取实例,然后通过实例的hide()方法虽然能够关闭对话框,但是会看到对话框闪现,而且主页面变灰,需要按下鼠标才能恢复正常。这种方法使用体验也很差。
经过多次尝试,最终找到了解决办法:
1. 在HTML中在对话框的class中不设置show,因此打开主页面时不会显示对话框;
2.在需要显示对话框时,通过jquery的addClass('show')增加show class;
3.在对话框上增加关闭按钮,在关闭按钮的click响应事件中通过jquery的hide()方法关闭对话框。