源更改后Jquery刷新图像

时间:2012-09-04 22:01:04

标签: javascript jquery

我有一个JavaScript函数,我在其中播放声音文件(使用phonegap)。它通常工作正常,但我想在下载文件时将img src更改为加载图标。但是,src已更改 文件播放后。

我尝试将+new Date().getTime()添加到src的末尾,但它没有帮助。有什么想法吗?

function playSound(){


var img = $(this).prev();

img.attr("src", "css/images/ajax-loader.gif?"+new Date().getTime());


var url = "http://some.com/fanky.mp3";   
mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS);
mediaTTS.play();

}

2 个答案:

答案 0 :(得分:0)

这可能是因为在当前运行循环结束之前不会重新绘制图像。如果Media.play()被阻止,则在完成播放之前,您可能看不到图像更改。

要确认我的怀疑,请尝试以下代码:

function playSound(){
    var img = $(this).prev();
    img.attr("src", "css/images/ajax-loader.gif?"+new Date().getTime());
    setTimeout(function() {
        var url = "http://some.com/fanky.mp3";   
        mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS);
        mediaTTS.play();
    }, 100);
}

答案 1 :(得分:0)

尝试删除src属性,然后使用不同的src

再次添加
function playSound(){
  var img = $(this).prev();
  img.removeAttr("src").attr("src","css/images/ajax-loader.gif?"+new Date().getTime());
  var url = "http://some.com/fanky.mp3";   
  mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS);
  mediaTTS.play();
}