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