如何在多个页面上使用 jQuery
Posted
技术标签:
【中文标题】如何在多个页面上使用 jQuery【英文标题】:how to use jQuery on multiple pages 【发布时间】:2015-09-30 10:34:27 【问题描述】:首先,我想澄清我即将提出的问题,说我刚刚解决了“未定义函数”问题,该问题通过将所需函数移至“头”来解决。 (我仍然觉得奇怪的是 onclick 在它自己的文件中看不到这个函数......) 我是 jQuery 的 1/2 天。我有一个 CSS 列表 (A)、构建列表 (B) 的 html 和一个处理列表折叠/展开的 jQuery 函数 (C)。都是从这里借来的:
jsfiddle.net/jhfrench/GpdgF/
当所有这些都在一个文件中时,它可以正常工作。但是当这个文件被读入一个 div 时,它就不再起作用了。我一直在尝试移动 A 和 C 一段时间,因为我认为这是我不知道的东西的范围(或相关问题)这里:) 不用说,折叠/扩展/悬停是还没有发生。如果我必须在尚未加载的文件中包含 html 代码 (B),我是将 A 和 B 部分保留在此文件中,还是将它们放在我的主页(包含 div最终会持有 B),还是别的什么? 提前谢谢你。
【问题讨论】:
这里没有任何意义。树视图与多个 HTML 页面有什么关系? 这正是我想要的。一旦我将文件 X 中的所有内容加载到已经存在的 div 中,在页面 Y 上,悬停/折叠等不再起作用,所以我认为我遇到了范围问题,但可能是其他问题我不知道。 (就像一个运行良好的 js 函数,但是一旦我在它上面有一个 jQuery 函数,在同一个“脚本”标签中就停止了......) 您的评论没有比问题的正文更有意义。当您一次只能加载一个 HTML 页面时,页面 X 上的控件如何影响页面 Y 上的某些内容? 主页面有一个左 div(菜单,不相关)和右 div,其中内容随着我们的操作而变化。当该列表被实现(按原样加载)到正确的 div 中时,jQuery 部分不起作用, 那么这些 iframe 是什么? 【参考方案1】:是的...我发现投反对票很奇怪...你们差点给了我一个悲伤的生日 :P 事实证明这个问题在你掉入陷阱之前是无法理解的。在这些不起眼的网站之一中找到了解决方案;)
给你: 不知何故,通过某些方法(ajax 是一种?)加载到其他页面的页面被剥夺了它们的“调用 javascript”功能。我有:
主页 --> | div 1 在左边 | div 2 在右边|
根据对 div 1 或 div 2 本身执行的操作,将东西加载到 div 2 中。这意味着在我的情况下,加载到 div 2 中的任何内容都需要 javascript 功能来进行决策。
一个随机页面X.htm---> |html+css+js|
(这是可以在主页的 DIV 2 中加载的各种“页面”之一)
html 工作正常,css 工作正常,js 根本不工作,从来没有。甚至没有人见过?不知道为什么...
解决方案:
1) 把与你的子页面相关的JS放在主页面! 2) 将以下内容放在加载到 DIV 2 中的任何页面的末尾,例如上面的“页面 X”
<img src="oneTransparentPixel.png" onload="theFunctionWeNeedInPageX()" />
在其中创建要加载的 1 像素透明图像 (!)。这里的 hack 是图像的加载允许调用我们需要的函数...
不知道JS代码是否在子页面中是看不见的,或者没有执行,或者页面还没有准备好执行它。无论如何,这个“解决方案”允许 1) 现在可以看到代码 2)一旦页面准备好让函数做它应该做的事情,它就会被执行。在我的例子中,该函数对子页面 X 中列表的鼠标悬停/折叠/等进行样式化。所以 可能 代码尚未准备好应用于列表,因为列表尚不存在 - 未被浏览器呈现,或者因为任何人都看不到代码。有人可以澄清发生了什么,或者指出我们应该阅读什么以便我们知道吗? 谢谢你的时间:)
【讨论】:
以上是关于如何在多个页面上使用 jQuery的主要内容,如果未能解决你的问题,请参考以下文章
Bootstrap 4如何在同一页面上使用多个jQuery版本[重复]
如何在滚动时为页面上的多个缩略图集实现 jQuery 图像循环循环?
如何使用 jQuery 检查 IFrame 在页面上是不是可见