Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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加载事件从未触发_Jquery - Fatal编程技术网

jquery加载事件从未触发

jquery加载事件从未触发,jquery,Jquery,我试图理解jQuery中的“加载”事件,如下所述:。到目前为止,我甚至一次都无法触发它 下面是一些示例代码。出现的唯一控制台消息是“DOM就绪”-而不是单个加载调用。用.bind('load',..)替换对.load()的调用没有任何区别 <!DOCTYPE html> <html> <head> <script src="lib/jquery.min.js"></script>

我试图理解jQuery中的“加载”事件,如下所述:。到目前为止,我甚至一次都无法触发它

下面是一些示例代码。出现的唯一控制台消息是“DOM就绪”-而不是单个加载调用。用.bind('load',..)替换对.load()的调用没有任何区别

   <!DOCTYPE html>
   <html>
   <head>
          <script src="lib/jquery.min.js"></script>
          <script>
           $(function(){
              console.log("DOM READY");
           });
           $(document).load(function(){
              console.log("Document Loaded");
           });
           $('#foo').load(function(){
              console.log("foo loaded");
           });
           $('#bar img').load(function(){
              console.log('image loaded');
           });
           $('#bar').load(function(){
              console.log('bar loaded');
           });
           </script>
   </head>
   <body>
     <div id="foo">Hellow world</div>
     <div id="bar">
        <img src="pics/pig.png"/>
     </div>
   </body>
   </html>

$(函数(){
log(“DOM就绪”);
});
$(文档).load(函数(){
控制台日志(“加载的文档”);
});
$('#foo').load(函数(){
console.log(“foo加载”);
});
$('#bar img')。加载(函数(){
log('image-loaded');
});
$('#bar')。加载(函数(){
console.log('bar-loaded');
});
地狱世界

我做错了什么?

您无法绑定到尚不存在的项。例如,当您执行以下操作时:

$('#foo').load(function(){
    console.log("foo loaded");
});
#foo
项不存在,因此无法绑定到其加载事件。还要注意文档中对
.load
事件本身的描述:

此事件可以发送到与URL关联的任何元素:图像、脚本、帧、iFrame和窗口对象


div元素不会“加载”。

如果使用document.ready事件进行绑定,则可以保证元素存在:

$(document).ready(function(){
    $('#foo').load(function(){console.log("foo loaded");});
}

正如乔纳森所说。如果您想要一个示例,我建议您查看本网站中的文档:


它有非常好的参考文献,而且我从你的例子中了解到,你希望保持它的简单,因此你会在这里找到它

我尝试复制你的例子,正如其他人所说,只有DOM READ one被激发

我还修改了脚本,并尝试加载img、a、div和script元素。没有人开枪

我还尝试传入window对象(在所有这一切之后是一个“window”事件)。这确实有效

我的结论是,尽管有jquery文档,但它只适用于窗口对象:

$(window).load(function(){
    alert("window loaded");
 });

我只在chrome中进行了测试,并且只测试了我提到的元素。我个人只会使用document.ready功能。根据文档,图像加载无论如何都不会很好地工作。这个特定函数有很多警告:

但是为什么不
$(function(){}
工作吗?这是
$(document.ready();
@11684的简写符号。OP说出现的唯一控制台消息是“DOM ready”。哎呀,误读…这很奇怪,上次我试着说它不工作@jonathansampson你是对的。将所有内容放在顶部$(函数()中)使所有问题不言而喻。然而,不幸的是,在加载img后没有触发$('#bar').load()。这意味着,我们没有“加载所有子项”事件。:-(@j08691它也适用于OP,出现的唯一控制台消息是“DOM就绪”。即使要访问
$(“#foo”)
,它也必须“加载”…答案很好-我把它插进去,看到了我的问题的其余部分(div与Jonathan指出的url无关)。谢谢!