Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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
Javascript $(文档)。准备好在ajax页面中不工作了吗_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript $(文档)。准备好在ajax页面中不工作了吗

Javascript $(文档)。准备好在ajax页面中不工作了吗,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在用ajax动态加载页面内容,我想用一个函数加载某些.js文件。js文件可以正常加载,但只有在通过ajax加载下一页之前 $(document).ready(function() { $(".element").click(function() { jQuery.getScript("http://example.com/js/file.js"); }); }); 例如:从主页到传记页面: 首先加载.js文件 第二:加载传记页面(通过ajax) 看

我正在用ajax动态加载页面内容,我想用一个函数加载某些.js文件。js文件可以正常加载,但只有在通过ajax加载下一页之前

$(document).ready(function() {
  $(".element").click(function() {
    jQuery.getScript("http://example.com/js/file.js");  
  });           
});
例如:从主页到传记页面: 首先加载.js文件 第二:加载传记页面(通过ajax)

看起来ajax页面总是处于状态文档就绪状态。因此,在通过ajax加载传记页面的内容之前,它会立即触发.js文件

$(document).ready(function() {
  $(".element").click(function() {
    jQuery.getScript("http://example.com/js/file.js");  
  });           
});
我已经通过超时暂时解决了这个问题,因此.js文件将在5秒后加载,因此在页面传记加载之后

$(".element").click(function() {
  setTimeout(function() {
    jQuery.getScript("http://example.com/js/file.js");
  }, 5000);
});
如何更改函数,使其在传记页面(或任何其他页面)加载后立即加载.js文件,而不是超时

编辑1:

我在这里添加了ajax调用:

AJAX允许您指定回调:一个在请求完成时调用的函数

将脚本/函数放入回调中,它将在秒页面完成加载后执行,有效地解决您的问题:

$.ajax({
    url: "test.html"
}).done(function() {
   //do things in here that should be done after the AJAX call e.g:
   jQuery.getScript("http://example.com/js/file.js");
});

AJAX允许您指定回调:请求完成时要调用的函数

将脚本/函数放入回调中,它将在秒页面完成加载后执行,有效地解决您的问题:

$.ajax({
    url: "test.html"
}).done(function() {
   //do things in here that should be done after the AJAX call e.g:
   jQuery.getScript("http://example.com/js/file.js");
});

正如您在第一行中所提到的,您正在动态加载抗争,因此您预定义的单击处理程序不会为以后添加的内容触发

因此,您需要使用事件委派

使用
jQuery.on()

样本

jQuery(document).on('click',".element",function()
{
    jQuery.getScript("http://example.com/js/file.js");
});

正如您在第一行中所提到的,您正在动态加载抗争,因此您预定义的单击处理程序不会为以后添加的内容触发

因此,您需要使用事件委派

使用
jQuery.on()

样本

jQuery(document).on('click',".element",function()
{
    jQuery.getScript("http://example.com/js/file.js");
});

我不明白你的过程是什么。您正在调用
getScript()
,然后从
file.js
加载第二页吗?ajax调用在哪里?我无法理解您的过程是什么。您正在调用
getScript()
,然后从
file.js
加载第二页吗?ajax调用在哪里?抱歉,js文件不与示例一起执行抱歉,js文件不与示例一起执行谢谢示例。虽然我希望有一个更通用的解决方案。因为这在wordpress帖子中不是很好。假设我想在每次打开的帖子中加载一个js文件,那么这个例子就不适合了。但这是一个好的开始,谢谢你的例子,+1谢谢你的例子。虽然我希望有一个更通用的解决方案。因为这在wordpress帖子中不是很好。假设我想在每次打开的帖子中加载一个js文件,那么这个例子就不适合了。但这是一个好的开始,谢谢你的例子,+1