thickbox是一个UI框架
在<head>部分就把thickbox的js和css加载到<html>文档中
当把<html>文档加载完后,就会给所有的class="thickbox"的元素绑定好事件
若加载完后,用Js添加或修改的class="thickbox"的元素,此时的class="thickbox"会失效,若是链接则只会在本页面打开链接,而不是在父窗口弹出一个层。
则需要为class="thickbox"的重新绑定事件
tb_init('a.thickbox, area.thickbox, input.thickbox');
这样就能让修改或添加的class="thickbox"的元素能调用到thickbox中的方法
但是这样$(document).ready(function(){});会再加载一次。
在使用ajax的时候,经常会返回一个页面,页面当中可能会有class="thickbox"的元素,若在返回的页面的末尾加上一句
tb_init('a.thickbox, area.thickbox, input.thickbox');
此时可能会出现原来的函数会执行两次,影响到结果。
这时就可以将tb_init添加到处理返回ajax的结果的function里,并再加一句,取消绑定,再重新tb_init。
$.post(url,null,function(result){
/***js处理结果***/
$('a.thickbox').unbind('click');//取消a中class="thickbox"的绑定
tb_init('a.thickbox, area.thickbox, input.thickbox');//重新绑定页面中class="thickbox"的元素
});
这样就不会出现加载两次的现象。