我使用thickbox 来加载一个html。这个 html 有一个表单,我需要向数据库添加一些东西。我在主 html 中有一个选择框(我从中加载厚框的那个)。我想要做的是当我按下thickbox 中的关闭按钮时,选择框必须使用我刚刚添加到数据库中的内容进行更新。我正在考虑修改thickbox close 方法并调用我的方法来更新选择框,但是当我这样做时,thickbox 会崩溃。任何提示将不胜感激。
问问题
4332 次
2 回答
8
您还可以“劫持”整个 tb_remove 函数。这意味着您不仅会捕获链接点击,还会捕获 ESC 键按下。
这涉及内联重命名原始删除方法并用您自己的方法替换它。
<script type="text/javascript">
var original_tb_remove = tb_remove;
tb_remove = function () {
**** insert your coolness here ****
original_tb_remove();
return false; }
</script>
注意:确保在第一次调用thickbox 之前执行此操作以获得最大成功。
于 2011-10-07T00:25:30.287 回答
0
如果您使用 Firebug 检查运行中的厚框,您可以看到厚框模式实际上是主页内的一个 div。您可以从thickbox 调用主页中的任何函数。
例如,这段代码将“劫持”thickbox 关闭链接并做一些额外的事情:
$("#TB_closeWindowButton").click(function(){
tb_remove();
//do extra stuffs, such as get a new select
var select_parent = $('#theselect').parent();
$.get('new_select.php',
{},
function(data){
select_parent.html(data);
});
});
除了劫持thickbox关闭链接外,您还可以将代码放入thickbox内的任何链接中。只需确保tb_remove()
在自定义代码之前或之后调用关闭厚框窗口即可。如果涉及提交表单,请使用jQuery 表单插件通过 AJAX 提交表单,然后在成功提交表单时运行您的关闭函数。
关于更新选择框,请参阅我的回答,了解如何让它在每个浏览器中运行。
为确保您的函数始终被调用,您可以将厚盒设置为使用modal
将禁用转义键的模式。记得放关闭代码,因为默认情况下,thickbox bar 是不会显示的。
于 2010-02-16T03:36:11.933 回答