【发布时间】:2010-04-13 13:23:58
【问题描述】:
当设置到onmouseover 和onmouseout 的dojo 连接,然后在鼠标悬停时添加内容时,dojo 会立即触发onmouseout 事件,因为有新内容。示例:
dojo.query(".star").parent().connect("onmouseover", function() {
dojo.query("span", this).addContent("<img src='star-hover.jpg'>");
}).connect("onmouseout", function() {
dojo.destroy(dojo.query("img", this)[0]);
});
parent() 是 <td>,.star 是跨度。每当用户悬停表格单元格时,我想添加悬停图像。只要光标不悬停在图像上,它就可以工作,因为这会导致一些严重的闪烁。这是故意的吗?有没有办法解决它?
编辑:刚刚用 jQuery 尝试了类似的东西,它按预期工作(至少正如我预期的那样。)
$(".star").parent().hover(function() {
$("span", this).append("<img src='star-hover.jpg'>");
}, function() {
$("img", this).remove();
});
这将在悬停时显示图像,并且仅在将光标移到表格单元格之外时才移除。
【问题讨论】:
-
我宁愿从一开始就将图像放在所有 span.star 节点中,然后在鼠标悬停时向
节点添加一种“.hovered”类,并添加一个 css 规则仅在“td.hovered”下显示 span.star 内的图像。 当然可以,但有时会在悬停状态下添加元素。这肯定不是正确的行为吗?
标签: dojo