使用 jQuery 操作 ThickBox 内容的初始回调

发布于 2024-07-09 22:11:25 字数 230 浏览 6 评论 0原文

这是场景:
ThickBox 从父窗口(按下按钮时)打开,其中包含 Ajax 内容(基于 div 的表单),其中包含具有自动完成支持的输入集。 一旦 ThickBox(form) 关闭,输入值应该传递到父窗口。

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

Here is the scenario:
ThickBox is opened from parent window (when button is pressed) with Ajax content (div based form) that contains the set of inputs with autocomplete support. Once ThickBox(form) is closed the input values should be passed to parent window.

Question:
The content of ThickBox is loaded dynamically, so what's the correct way to have an initial callback to manipulate ThickBox content with jQuery (kind of $(ThickBox).ready.. )?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤独难免 2024-07-16 22:11:25

我的首选选择是研究其他模式插件选项,例如 jqModal。 这确实公开了您可以使用的 onShow 和 onHide 事件挂钩。

Thickbox 正在显示其年龄,它不会暴露您可以观察到的任何“显示”事件。
如果你一心想要使用thickbox,那么你有几个选择。

一种选择是使用 jQuery 公开的全局 ajax 事件,例如 $.ajaxSuccess 事件 。 当 Thickbox 成功请求显示数据时,这将触发。 但是此时,thickbox 可能尚未将数据添加到模态中,您必须尝试一下。

例如,

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

请注意,此事件将在页面中发生的每个 ajax 事件完成时触发,因此您可能需要一些额外的检查

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

My prefered option is to investigate other modal plugin options such as jqModal. This does expose onShow and onHide event hooks that you can utilise.

Thickbox is showing its age, it does not expose any 'show' events that you can observe.
If you are hell bent on using thickbox then you have a few options.

One option would be to use the global ajax events that jQuery exposes e.g $.ajaxSuccess event. This will fire when thickbox has successfully requested the data to show. However at this point thickbox may not have added the data to the modal, you will have to try this out.

E.g

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

Be aware that this event will fire on completion of every ajax event that happens within your page therefore you may want some extra checks

Another option is to change the thickbox script and add your own callback code that allows you to pass in a function which will be raised when the modal is shown.

人间不值得 2024-07-16 22:11:25

您可以使用 LiveQuery 插件。 该插件将拦截 DOM 中的更改并自动重新绑定其他读取 DOM 的插件

You can use the LiveQuery plugin. This plugin will intercept changes in the DOM and automagically re-bind others plugins reading the DOM

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文