下面是场景:
ThickBox 从父窗口(按下按钮时)打开,其中包含具有自动完成支持的输入集的 Ajax 内容(基于 div 的表单)。一旦 ThickBox(form) 关闭,输入值应该被传递给父窗口。
问题:
ThickBox 的内容是动态加载的,那么使用 jQuery(类似于 $(ThickBox).ready.. )使用初始回调来操作 ThickBox 内容的正确方法是什么?
我的首选是调查其他模态插件选项,例如jqModal。这确实公开了您可以使用的 onShow 和 onHide 事件挂钩。
Thickbox 正在显示它的年龄,它不会暴露任何你可以观察到的“显示”事件。如果您一心想要使用厚盒,那么您有几个选择。
一种选择是使用 jQuery 公开的全局 ajax 事件,例如$.ajaxSuccess 事件。当thickbox 成功请求数据显示时,这将触发。但是此时,thickbox 可能尚未将数据添加到模态中,您必须尝试一下。
例如
$.ajaxSuccess( function(evt, request, settings){
//ajax method has completed
});
请注意,此事件将在您页面中发生的每个ajax 事件完成时触发,因此您可能需要一些额外的检查
另一种选择是更改thickbox脚本并添加您自己的回调代码,允许您传入一个函数,该函数将在显示模式时引发。
您可以使用LiveQuery插件。该插件将拦截 DOM 中的更改并自动重新绑定其他读取 DOM 的插件