Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery.load()加载的页面不';不响应其他JavaScript_Javascript_Jquery_Ajax_Load - Fatal编程技术网

使用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函数。 });

  • 从jQuery网站:

    脚本执行

    当使用不带后缀选择器表达式的URL调用.load()时,在删除脚本之前,内容将传递给.html()。这将在脚本块被丢弃之前执行它们。但是,如果使用附加到URL的选择器表达式调用.load(),则会在更新DOM之前剥离脚本,因此不会执行。两种情况的示例如下所示:

    在这里,作为文档的一部分加载到#a中的任何JavaScript都将成功执行

    1. $('#a').load('article.html');
    
    但是,在以下情况下,要加载到#b中的文档中的脚本块会被剥离,并且不会执行:

    1. $('#b').load('article.html #target');
    

    当您使用带有后缀选择器表达式的
    .load
    函数时,您试图加载的页面中包含的
    .js
    文件不会被执行,就好像它们根本不被包含一样

    那么你有两个选择:

  • 使用不带后缀选择器表达式的
    .load
    函数
  • 或者在邮件页面中包含
    .js
    文件,然后在像这样加载内容后执行所需的功能

    $('#left').load('demos/websites.html.content',function(){ //在这里执行js函数。 });

  • 从jQuery网站:

    脚本执行

    当使用不带后缀选择器表达式的URL调用.load()时,在删除脚本之前,内容将传递给.html()。这将在脚本块被丢弃之前执行它们。但是,如果使用附加到URL的选择器表达式调用.load(),则会在更新DOM之前剥离脚本,因此不会执行。两种情况的示例如下所示:

    在这里,作为文档的一部分加载到#a中的任何JavaScript都将成功执行

    1. $('#a').load('article.html');
    
    但是,在以下情况下,要加载到#b中的文档中的脚本块会被剥离,并且不会执行:

    1. $('#b').load('article.html #target');
    

    如果你认为我的问题可以更好地理解,提供完整的代码,你可以让我知道,我很乐意在我自己的答案更详细:如果你认为我的问题可能是更好的理解,提供完整的代码,你可以让我知道,我很乐意在我自己的答案更多的阐述: