2009-10-04 105 views
2

我有一组jqueryui选项卡,点击后可以动态加载其内容。它的效果很好,除了其中一个页面本身使用jquery插件。加载时Jquery加载依赖于jquery插件的外部文件

  1. 持有标签的主要页面抛出一​​个错误,因为有JS是指尚未加载元素(这些元素是在包含外部文件:这将导致两个问题依赖插件的代码)。

  2. 如果我将触发插件功能的js嵌入到外部文件中,它位于主页面的document.ready函数之外,因此无法使用。

基本上我在寻找一种技术,可以让我阿贾克斯加载外部HTML文件到DOM而不是crapping出自己的主页,因为JS是已经有预期的HTML是尚未出现。

谢谢。

+0

你能提供代码吗? – 2009-10-04 20:47:50

回答

0

你需要封装你的jQuery代码在$(document).ready()函数中。如果你说的等待通过AJAX加载的代码可能会或可能不会与父页面同时加载(即,用户必须单击该选项卡来加载它,而不是它的默认加载),那么你设计很糟糕,你必须重新思考这种方法。基本上,你的父页面中不能有代码引用不存在的DOM元素,并且直到你的用户点击一个标签才可能存在。

0

我还没有使用它,但我认为这是你在找什么

Listen

这个插件带来了干净明亮的解决方案,与动态加载内容的网站,或充满事件绑定。 绑定,事件处理程序的Intead与匹配的选择器一起注册。 他们仍然可以为新添加的内容工作。 这是通过使用事件委托来实现的,所以插件只能用于冒泡的事件