开发过程中,经常用到bootstrap的modal。当动态的改变了modal的html,或者表单校验结果显示了,亦或只是单纯的做了一些输入。这时候关闭modal再打开,还是原先的样子。如果想要重置,我经常用的办法是,重置元素的html。
首先在页面加载后在一个全局变量中保存modal的html。
var modalHTML = $("#myModal").html();
然后再每次打开modal时,都重置html。
$("#myModal").html(modalHTML);
这样就显示了一个全新的模态框。
但这样有一个问题。比如说原先模态框里面有个表单,有个按钮的id="testButton",然后我在js中给他绑定了click方法。
$("#testButton").click(function(){
alert(666)
});
当我重置了html之后,这个click方法就不生效了。
解决办法是,在html代码中,直接给元素绑定onclick事件。这样重置html之后也能触发onclick事件去执行对应的function。