0

我有一些 div:

<div id='dialog'></div>

现在我想在这个 div 中加载一个外部 html 文件并使用它的 js 函数。

我知道我可以使用 jQuery.Load() 加载它并且工作正常,问题是我想使用 html js 函数。

主要问题是我有几个 div,我将这个 html 文件加载到其中,我希望当我激活 js 函数时它只能在特定的 div 上工作。

4

2 回答 2

0

将参数传递给您正在加载的视图,该参数将指示已加载视图的容器:

jQuery.Load(url, { containerId: 'dialog' })
于 2013-02-13T08:54:38.660 回答
0

我记得当 jQuery1.4 发布时我遇到了问题。在那个版本中,.load()当指定目标容器时,突然开始剥离 js。

我当时做了什么:

  1. 在不同的文件(比如myhtml.htmlmyjs.js)或视图中分离 html 和 js
  2. 让我的 js 文件充当 js 模块,具有公共入口点函数(例如initContent),将 jQuery 元素作为参数
  3. 在myhtml.html中有一个不可见的链接,即<a href="myjs.js#initContent" class="dynamicJs" style="display:none;"></a>
  4. 将myhtml.html加载到我的目标 div 后,$('a.dynamicJs')在我的目标 div 中搜索以提取 js url,并从href
  5. 如果之前没有加载 js,则通过 ajax 调用将 js 动态加载到页面中
  6. 以目标div为参数动态调用入口函数

这也适用于 css。它需要一些时间在所有导航器上进行调整(IE 上的 css 部分数量有限,动态调用函数的方式不同),最后我得到了更多我期望的代码。它还需要对我的 html/js 模块进行大量重构(但我必须承认我最终拥有了一个非常干净的代码)

我确信现在有框架可以更好地处理这种情况。但这是我当时想出来的。

希望这会有所帮助

于 2013-02-13T09:30:28.973 回答