**免责声明:我正在为一个不允许我操作应用核心文件的网络应用编写主题文件,因此我无法更改DOM中文件加载的顺序
我有一个JS文件,允许我向页面添加自定义脚本。我在jQuery中编码。
我想更改页面上其中一个元素的图像源。图像的源是由我无法触摸的核心JS文件动态加载到页面的,在我的文件后加载...
让我们说HTML是:
<div class ="parent">
<img src="http://example.com/image.jpg">
</div>
当我向我的jQuery doc添加如下内容时:
$(document).ready(function(){
function fixImgSrc(){
var newSrc = 'http://example.com/new-image.jpg';
var image = $('.parent').find('img');
if (image.attr('src') !== newSrc){
image.attr('src', newSrc);
}
};
fixImgSrc;
});
当我运行此函数时,它返回undefined
,因为图像是在jQuery之后加载的。我需要在整个代码中多次执行此操作以更正图像。有时我可以通过运行以下函数来解决这个问题:
setTimeout(fixImgSrc(), 500);
在其他所有内容加载后运行该函数。其他时候,我可以让整个网站的工作唯一的方法是做悲惨的事情:
setInterval(fixImgSrc(), 500);
继续检查是否已采用新来源。
有没有更好的不那么俗气的方法呢?这似乎是一个黑客,而不是&#34;权利&#34;这样做的方式。另外,浏览器上的负载也是一遍又一遍地运行相同的命令。
答案 0 :(得分:1)
$(document).ready(function(){
FixImgSrc();
}
这里它将使文件的就绪状态
后工作试试这个
var image = $('.parent').find('img');
image.on("load",function(){
if (image.attr('src') !== newSrc){
image.attr('src', newSrc);
}
答案 1 :(得分:1)
$(document).ready(function(){
alert("ready ");
FixImgSrc();
}
我认为首先你需要检查你的jquery是否有效。