2012-01-06 65 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