您的当前位置:首页正文

使用jquery的load方法加载html页面,但是html引入的js不生效

2023-01-31 来源:步旅网
使用jquery的load方法加载html页面,但是html引入的

js不生效

Write By Monkeyfly

以下内容均为原创,如需转载请注明出处。

前提

有一个公共的登录弹框页面需要在多个页面引用,百度后就使用了jQuery 的 load 方法。

做法:

• 将公共的 html 页面提取出来,放在一个独立的 HTML 文件中。 • 然后在需要使用的 html 页面中,使用 jQuery 的 load 方法进行

引用即可。

• 注:提取的部分,不需要包含多余的、等标签,

只需要放置你所用到的标签即可。

用法:

• •

jQuery 中的 load 方法 jQuery.load() AJAX 函数详解

具体代码如下: //HTML部分:

//js部分:

//当前页面的js文件

//引入的公共登录页面的js文件

不想看代码的可以看图:

carriage.js 文件中的部分 html 代码如下所示

login.js 文件中的 部分 js 代码如下所示:

发现问题

注:这里以 关闭按钮 (即 .layer-close-icon 元素)为例,进行了测试和调试。

• 代码运行后发现:登录弹框页面中所有元素的绑定事件都没有被

触发。点击关闭按钮也没有反应。

• 控制台调试后发现:在为 $(\".layer-close-icon\") 注册点击事件

时,根本就没有找到该元素。【如下图所示】

• 在控制台查看当前的 HTML 结构,发现:此时,登录框并没有被加载进来。所以,页面元素目前还不存在,当然获取不到该元素,也就不能为它注册点击事件了。【如下图所示】

后来思考了许久,也问了一下同事,得出一个结论:这与页面中 js 文件 的加载和执行顺序有关系。

• 页面上的

js代码是HTML页面的一部分,所以js在页面装载时

的执行顺序就是其引入 参考资料:

html中引入调用另一个公用html模板文件的方法

html引用公共的头部和尾部(多个html文件公用一个

• 如何让

header.html和footer.html)

因篇幅问题不能全部显示,请点此查看更多更全内容