这是我的ajax查询。它从服务器检索一些数据,淡出图像,更改图像,然后淡入。
$(document).ready(function() {
setInterval(function() {
$.ajaxSetup({ cache: false });
//alert("launching...");
const rvtoken = $("input[name='__RequestVerificationToken']").val();
const moduleId = @Dnn.ModuleContext.ModuleId;
const tabId = @Dnn.ModuleContext.TabId;
$.ajax({
cache: false,
dataType: 'json',
url: "/DesktopModules/MVC/LH.Home/Home/GetAssociation",
method: "Post",
headers: {
"ModuleId": moduleId,
"TabId": tabId,
"RequestVerificationToken": rvtoken,
"AssociationID": $("#hfAssociationID").val()
},
success: function(data) {
$("#associationDiv").fadeOut(3000,
function() {
$('#discoverLink').attr("href", `/Association/${data.Title}`);
$('#SelectedAssociationLink').attr("href", `/Association/${data.Title}`);
$('#SelectedAssociationImg').attr("src",
`/portals/@Dnn.ModuleContext.PortalId/assets/associations/${data.Slug}/images/img1.png`);
$('#SelectedAssociationImg').attr("alt", `${data.Title} icon`);
});
$("#associationDiv").fadeIn(3000);
$("#hfAssociationID").val(data.AssociationID);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus);
console.log(errorThrown);
console.log(jqXHR);
}
});
},
30000
);
})
一切正常。 href链接已更改,图像也已更改。
问题是图片的替代文本。当我检查元素时,我可以看到它的变化,但是当我将鼠标悬停在图像上时,所显示的alt标签文本与加载文档时的文本相同。
如何使鼠标悬停替代文本正确显示?
答案 0 :(得分:2)
之所以可能发生这种情况,是因为浏览器在页面加载时存储了alt标记,然后不反映对其所做的任何更改。在这种情况下,解决此问题的一种方法是简单地删除图像,并重新插入新属性。
$('#SelectedAssociationImg').replaceWith("<img id='SelectedAssociationImg' src='newSrc' alt='newAlt'/>")
请记住将newSrc
和newAlt
替换为您想要的任何内容。
答案 1 :(得分:0)
alt
不是鼠标悬停在图像上时显示的内容,title
是
答案 2 :(得分:-1)
请确保您清除了Web浏览器的缓存,并在之后进行了完全刷新 您需要对JavaScript进行修改。