Javascript 为什么jQuery on(';加载';,函数(){});如果图像在加载绑定之前加载,是否不激发?IE和本地主机
以下代码在服务器上运行良好,但当我将其拉到本地环境(localhost)或IE上时,负载不会启动Javascript 为什么jQuery on(';加载';,函数(){});如果图像在加载绑定之前加载,是否不激发?IE和本地主机,javascript,jquery,internet-explorer,localhost,jquery-load,Javascript,Jquery,Internet Explorer,Localhost,Jquery Load,以下代码在服务器上运行良好,但当我将其拉到本地环境(localhost)或IE上时,负载不会启动 $(document).ready(function (){ $('#img').on('load', function(){ //do something }); }; 我通过浏览器检测和下面的代码解决了IE上的问题,但我想对所有浏览器使用相同的代码 var firstBannerImgSrc = $('#img').attr('src'); var fi
$(document).ready(function (){
$('#img').on('load', function(){
//do something
});
};
我通过浏览器检测和下面的代码解决了IE上的问题,但我想对所有浏览器使用相同的代码
var firstBannerImgSrc = $('#img').attr('src');
var firstBannerImg = new Image();
firstBannerImg.src = firstBannerImgSrc;
firstBannerImg.onload = function(){
//do something
};
有人看到问题了吗?您应该停止浏览器检测,对所有浏览器使用相同的技术,因为这是两种浏览器中最安全的一种
$(document).ready(function (){
var $img = $("#img"),
img = new Image();
$(img).on('load', function(){
$img.doSomething();
}).attr('src', $img.attr('src'));
});
如果在绑定事件之前加载了映像,那么事件处理程序不执行是完全有意义的,因为事件绑定到之前从未发生过事件。上面的代码在所有浏览器中都避免了这个问题,而作为您的解决方案,只有在图像尚未缓存(由于另一个IE bug)且尚未完成加载(这将发生在未正确实现DOMContentLoaded(如oldIE)的浏览器中)的情况下,才会避免这个问题如果在绑定事件之前加载图像,为什么会触发?当您绑定事件处理程序时,它会从那一刻起侦听指定的事件,而不会回顾过去。。。(jQuery的文档就绪处理程序是一个例外,因为它被故意定义为即使在DOM就绪后绑定也要执行。)我没有意识到文档就绪处理程序和其他处理程序之间的区别。谢谢