【发布时间】:2013-01-20 14:48:43
【问题描述】:
我遇到了 jQuery 的一种情况。特别是它的 prettyPhoto 库和 getJSON 函数。
我有一个加载 HTML 的页面,它调用 jQuery 和 prettyPhoto。有一些内联 JS 会在页面下方发出 JSON 请求:
它应该像下面这样工作:
1) 页面加载,
2) Javascript 代码运行,
3) 脚本运行一个 jQuery JSON 请求,该请求返回并包含 HTML(每个 a-tag 中的 a-tags 和图像),
4) 脚本然后将 JSON 中的 HTML 打印到屏幕上,
5) 用户单击 a-tag/image 并在 prettyPhoto 的 iframe 弹出窗口中打开。
注意 -> 每个 a-tag 都附加了一个 prettyPhoto id(使用 iframe 弹出窗口将图像加载到 prettyPhoto 中)。
问题是图片(a-links)不能用 prettyPhoto 打开,我不知道为什么。没有 JS 错误。
但是,如果我手动将 HTML (a-links/image) 已经存在那里,它确实有效(所以只是从 JSON 请求中加载它们的 HTML 似乎会有所不同)。
似乎在 JSON 请求返回时(带有 HTML)prettyphoto 已经绑定到 a-tags(或缺少 off)。
目前已测试:
尝试将 JSON 请求放入“document.ready”,将 prettyPhoto 放入“window.load”。 JSON 请求也是如此,而当其他所有内容加载时,prettyPhoto 也会绑定 - 失败
尝试使用 jQuery AJAX 而不是 JSON - 失败
特别不需要代码,但逻辑有问题。
【问题讨论】:
-
在提出问题时包含您的代码会很有帮助,这样可以更轻松地帮助您进行调试。听起来您需要帮助使您的代码异步运行,以便仅在 JSON 请求完成时调用 prettyPhoto 的东西。
-
我打算这样做,但我不确定我对页面事件和 jquery 事件的理解是否存在差距。下次遇到问题时,我会尝试这样做。谢谢
标签: javascript jquery json html dom