使用 dojo 将图像作为工具提示
image as tooltip using dojo
我试图在鼠标悬停在另一张图片上时显示一张图片。为此,我使用 dijit/Tooltip。问题是,图像没有在第一次鼠标悬停时显示,它总是出现在第二次之后。图像是动态显示的,并给出了一个动态 id。
<c:forEach items="${model.images}" var="image" varStatus="status">
<img src="${image.url}" height="50" onmouseover="showImage('${image.id}')" id="image${image.id}" />
<c:forEach>
<script>
function showImage(name) {
require(["dijit/Tooltip", "dojo/domReady!"], function(Tooltip){
new Tooltip({
connectId: ["image"+name],
label: "<img src='/images/"+name+"'/>"
});
});
};
</script>
有了 dijit/Tooltip 就不需要 onmouseover 函数了。使用您的代码,第一次鼠标悬停仅设置工具提示。第二次附加工具提示并显示它(并且 showImage() 再次运行,这不是最佳的)。
您需要在将图像添加到 dom 时创建工具提示。您可以参考 dijit/Tooltip guide 以获取有关如何以声明方式设置工具提示的示例。或者,您可以转换代码以编程方式添加图像及其工具提示。
我试图在鼠标悬停在另一张图片上时显示一张图片。为此,我使用 dijit/Tooltip。问题是,图像没有在第一次鼠标悬停时显示,它总是出现在第二次之后。图像是动态显示的,并给出了一个动态 id。
<c:forEach items="${model.images}" var="image" varStatus="status">
<img src="${image.url}" height="50" onmouseover="showImage('${image.id}')" id="image${image.id}" />
<c:forEach>
<script>
function showImage(name) {
require(["dijit/Tooltip", "dojo/domReady!"], function(Tooltip){
new Tooltip({
connectId: ["image"+name],
label: "<img src='/images/"+name+"'/>"
});
});
};
</script>
有了 dijit/Tooltip 就不需要 onmouseover 函数了。使用您的代码,第一次鼠标悬停仅设置工具提示。第二次附加工具提示并显示它(并且 showImage() 再次运行,这不是最佳的)。 您需要在将图像添加到 dom 时创建工具提示。您可以参考 dijit/Tooltip guide 以获取有关如何以声明方式设置工具提示的示例。或者,您可以转换代码以编程方式添加图像及其工具提示。