注意上面代码中 unbind 事件也是很必要的。

另外推荐一个很好的 jquery 插件 —— background iframe.
以前我们写网页中的日历控件之类的,为了遮住 <select> (IE 6.0 或以下),一般都是用一个

<div>
  
<iframe></iframe>
</div>

来加载弹出的内容。但是这样有个问题,就是加载的文档和当前文档不是一个页面,那么在 asp.net 等后台代码里,就不是很方便做数据绑定,因为多了一个页面,就需要多出很多不必要的变量传递工作。

而 background iframe 的原理是,你可以在当前页面的 <div></div> 里直接写弹出内容,它负责动态的在这个 div 中插入一个透明的 iframe 作为背景的遮罩,这样也一样能达到遮挡 <select> 的效果。
调用方式也非常简单:

$("#some_layer").bgiframe();

这样就可以了。

这里联想到,编程真的是思路最重要。记得以前看 meizz 的日历控件代码,通过 iframe 的方式写入,实现很复杂,现在如果换了 background iframe 这个思路,问题很简单就解决了。


相关文章: