2012-01-06 100 views
0

使用CoffeeScript,我有jQuery功能,它執行一些操作,替換圖像源路徑,然後嘗試異步發佈。Chrome中的異步jQuery POST請求

$('.qualify_main_image').live 'click', (event) -> 
    # some stuff 
    $(this).find('img').attr('src', path) 

    $.post(theHref) 

我希望圖像在發出POST請求之前進行更改,並且在Safari和Firefox中完美實現。但是,在Chrome中,它會等待POST請求的響應以更改圖像的源路徑。

由於CoffeeScript返回函數中的最後一個表達式,我認爲在函數的末尾添加'true'可能會有所幫助,但事實並非如此。

那麼,我做錯了什麼?這裏發生了什麼?謝謝。

回答

1

我不確定你是如何測試這個的,但它可能與CoffeeScript有關,因爲使用直接的javascript沒有你描述的問題。請參見下面的小提琴:

$('.qualify_main_image').live('click', function(event){ 
    $(this).find('img').attr('src', 'http://www.travelblog.org/Wallpaper/pix/tb_mecsek_yellow_flower.jpg'); 

    $.post('/echo/json', function(data){ alert('post done.')}); 
}); 

http://jsfiddle.net/Dqg6A/7/

+0

感謝一大堆。哇。太奇怪了。我曾嘗試用Javascript編寫代碼,儘可能地隔離代碼,並且仍然在等待。我完全困惑。 – kmurph79 2012-01-06 15:27:33

+1

確實很奇怪。即使將異步設置爲false,圖像仍然會首先設置。嗯,但也許它不會把控制權交給UI線程。哦,也許就是這樣。檢查你的ajax設置並確保async:true。 – Milimetric 2012-01-06 15:30:32

+1

嘗試把你的東西放在小提琴中,以便我可以看看。 – Milimetric 2012-01-06 15:32:33