**免责声明:我正在为Web应用程序编写主题文件,该文件不允许我操作应用程序的核心文件,因此我无法更改文件加载顺序DOM。使用jQuery更改img src
我有一个JS文件,允许我将自定义脚本添加到页面。我在jQuery中编码。
我想更改页面上某个元素的图像源。图像的源被加载到页面动态地由核心JS文件,我不能碰,这是我的文件之后加载中...
比方说,HTML是:
<div class ="parent">
<img src="http://example.com/image.jpg">
</div>
当我添加类似下面我jQuery的文档:当我运行这个功能
$(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;
});
,因为图像jQuery的加载后返回undefined
。我需要在代码中多次执行此操作以更正图像。有时我可以通过运行以下功能来解决此问题:
setTimeout(fixImgSrc(), 500);
它在加载其他所有内容后运行该功能。其他时候,我能得到这个整个网站的工作的唯一方法是通过执行惨:
setInterval(fixImgSrc(), 500);
继续检查,如果新源已被采取。
有没有更好的不太俗气的方式来做到这一点?这似乎是一种黑客攻击,而不是“正确”的方式。再加上浏览器的负载剧烈运行一遍又一遍的相同的命令。
我应该提到的是,作为jQuery,一切都已经包装在$(document).ready()语句中。 –
我更新了答案尝试更新 – Osama