**免責聲明:我正在爲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