当我单击 ID 为“mailToTechOwner”的图像时,我有以下代码
$('#mailToTechOwner').live('click', function (e) {
e.preventDefault();
var origSource = $(this).attr("src");
var objDiv = $(this);
//change image to ajax loader
objDiv.attr("src", "/Content/Images/ajax-loader.gif");
$.get("/Project/MailMessage/" + projectId, function (data) {
//change image back to original
objDiv.attr("src", origSource);
window.location = 'mailto:' + data.Email+ '?subject=Alert' + data.Name;
});
});
当我单步执行 firebug 中的代码时,它工作正常,但是当我运行它时,我的电子邮件客户端会弹出(在我的情况下是 Outlook),但图像仍然是 ajax 加载程序。. 即使这条线已经运行:
objDiv.attr("src", origSource);
无论如何在图像更改完成之前不弹出电子邮件?更改 src 属性是异步操作吗?在运行其他代码之前是否有一些回调来确保其完成?