代码之家  ›  专栏  ›  技术社区  ›  Gennady Shumakher

使用jquery操作thickbox内容的初始回调

  •  3
  • Gennady Shumakher  · 技术社区  · 16 年前

    以下是场景:
    ThickBox从父窗口(按下按钮时)打开,使用Ajax内容(基于DIV的表单),其中包含一组支持自动完成的输入。关闭ThickBox(窗体)后,应将输入值传递给父窗口。

    问题:
    ThickBox的内容是动态加载的,所以使用jquery操作ThickBox内容的初始回调的正确方法是什么(类似于$(thickbox.ready..)?

    2 回复  |  直到 7 年前
        1
  •  3
  •   redsquare    16 年前

    我的首选选项是研究其他模式插件选项,如 jqModal . 这确实暴露了OnShow和OnHide事件挂钩,您可以使用它们。

    thickbox显示了它的年龄,它不会暴露任何你可以观察到的“显示”事件。 如果你下定决心使用thickbox,那么你有几个选择。

    一种选择是使用jquery公开的全局Ajax事件,例如 $.ajaxSuccess event . Thickbox成功请求显示数据时,将触发此操作。不过,此时thickbox可能没有将数据添加到模式中,您必须尝试一下。

    例如

    $.ajaxSuccess( function(evt, request, settings){
       //ajax method has completed
    }); 
    

    请注意,此事件将在完成 每一个 页面内发生的Ajax事件,因此您可能需要进行一些额外的检查。

    另一个选项是更改thickbox脚本并添加您自己的回调代码,该代码允许您传入一个函数,该函数将在显示模式时引发。

        2
  •  -1
  •   Infinite Recursion Van Phong Pham    10 年前

    你可以使用 LiveQuery 插件。此插件将截获DOM中的更改,并自动重新绑定其他读取DOM的插件。

    推荐文章