使用jQuery.load()加载的页面不';不响应其他JavaScript
我使用使用jQuery.load()加载的页面不';不响应其他JavaScript,javascript,jquery,ajax,load,Javascript,Jquery,Ajax,Load,我使用.load()将相同的页面动态加载到一个div中。每个页面的To div被加载到主页上的两个窗格中。它起作用了。我想做的是让JavaScript处理子页面中包含的链接。子页面上只有一个列表 链接必须是相对于根的,但是以同样的方式链接JS文件是不起作用的。无论我说.js文件位于何处,都不会发生任何事情。只有初始的.load()函数 我是否向代码中添加了一些内容,或者找到了查找.js文件的方法 这是带有.load() 您最好使用事件委派。由于.load()调用是异步的,它们在未收到响应时立即返
.load()
将相同的页面动态加载到一个div中。每个页面的To div被加载到主页上的两个窗格中。它起作用了。我想做的是让JavaScript处理子页面中包含的链接。子页面上只有一个列表
链接必须是相对于根的,但是以同样的方式链接JS文件是不起作用的。无论我说.js文件位于何处,都不会发生任何事情。只有初始的.load()函数
我是否向代码中添加了一些内容,或者找到了查找.js文件的方法
这是带有.load()
您最好使用事件委派。由于
.load()
调用是异步的,它们在未收到响应时立即返回,.click()
绑定只在执行时考虑DOM中的现有元素
$(document).on('click', 'nav#subnav li a', function() {
...
});
从jQuery1.7开始,建议使用
.on()
执行此操作。最好使用事件委派。由于.load()
调用是异步的,它们在未收到响应时立即返回,.click()
绑定只在执行时考虑DOM中的现有元素
$(document).on('click', 'nav#subnav li a', function() {
...
});
从jQuery 1.7开始,
.on()
是推荐的执行此操作的方法。看起来像是时间问题。使用load的回调函数注册click事件
$('#left').load('demos/websites.html .content',function() {
console.log('Left pane loaded');
});
看起来是时间问题。使用load的回调函数注册click事件
$('#left').load('demos/websites.html .content',function() {
console.log('Left pane loaded');
});
以下是您的完整代码以及Alexander的建议
$(document).ready(function() {
//#left and #right are divs loading content from .content/.description
$('#left').load('demos/websites.html .content');
$('#right').load('demos/websites.html .description');
$(document).on('click', 'nav#subnav li a', function() {
var page = $(this).attr('href');
$('#left').load(page+' .content');
$('#right').load(page+' .description');
return false;
});
});
但请确保您使用的是jQuery1.7或更高版本
代码不起作用的原因-当您将单击处理程序绑定到链接的语句出现时,可能无法在DOM中加载链接。以下是您的完整代码以及Alexander的建议
$(document).ready(function() {
//#left and #right are divs loading content from .content/.description
$('#left').load('demos/websites.html .content');
$('#right').load('demos/websites.html .description');
$(document).on('click', 'nav#subnav li a', function() {
var page = $(this).attr('href');
$('#left').load(page+' .content');
$('#right').load(page+' .description');
return false;
});
});
但请确保您使用的是jQuery1.7或更高版本
代码不起作用的原因-当将单击处理程序绑定到链接的语句,此时可能无法在DOM本身中加载链接。当您使用带有后缀选择器表达式的
.load
函数时,您尝试加载的页面中包含的.js
文件不会被执行,就好像它们根本不被包含一样
那么你有两个选择:
.load
函数.js
文件,然后在像这样加载内容后执行所需的功能
$('#left').load('demos/websites.html.content',function(){
//在这里执行js函数。
});1. $('#a').load('article.html');
但是,在以下情况下,要加载到#b中的文档中的脚本块会被剥离,并且不会执行:
1. $('#b').load('article.html #target');
当您使用带有后缀选择器表达式的
.load
函数时,您试图加载的页面中包含的.js
文件不会被执行,就好像它们根本不被包含一样
那么你有两个选择:
.load
函数.js
文件,然后在像这样加载内容后执行所需的功能
$('#left').load('demos/websites.html.content',function(){
//在这里执行js函数。
});1. $('#a').load('article.html');
但是,在以下情况下,要加载到#b中的文档中的脚本块会被剥离,并且不会执行:
1. $('#b').load('article.html #target');
如果你认为我的问题可以更好地理解,提供完整的代码,你可以让我知道,我很乐意在我自己的答案更详细:如果你认为我的问题可能是更好的理解,提供完整的代码,你可以让我知道,我很乐意在我自己的答案更多的阐述: