Chrome 和 Firefox 之间的 JavaScript 行为差异(鼠标悬停时的事件)
Javascript difference in behavior between chrome and firefox (event onmouseover)
我的目的是使img仅在输入边界内输入鼠标时才可见。我看到的问题是代码在 chrome(版本 39)中的工作方式与在 Firefox(版本 35)中的工作方式不同。
在 Firefox 和 IE 中,它按预期工作,但在 chrome 中,它仅在我单击边界内部或外部时触发功能。我尝试使用其他事件,如onmouseenter,onmousemove或onmouseleave,但它们似乎具有相同的结果。
我的代码有问题吗?
我有以下代码:
<html>
<body>
<form><table><tr><td><input name="var1" id="var1"></td><td><img name="var1_img" id="var1_img" src="nostar.png" style="display:inline-block; position:relative; left:-20px" onclick="callClickEvent(this)"></td></tr></table></form>
<script>
var statusImg = 0;
function obtenerObj(idName) {
var obj = null;
if (document.getElementsByName && document.getElementsByName(idName)[0]) obj = document.getElementsByName(idName)[0];
else if (document.getElementById && document.getElementById(idName)) obj = document.getElementById(idName);
return obj;
}
function makeVisible(idName) {
console.log("Visible "+idName);
var obj = obtenerObj(idName+"_img");
if (obj) obj.style.display = "inline-block";
}
function makeInvisible(idName) {
console.log("Invisible "+idName);
var obj = obtenerObj(idName+"_img");
if (obj) obj.style.display = "none";
}
function callClickEvent(obj) {
if (obj) {
if (statusImg == 0) {
obj.src = "star.png";
statusImg = 1;
} else {
obj.src = "nostar.png";
statusImg = 0;
}
}
}
var obj = obtenerObj("var1");
if (obj) {
obj.onfocus = function() { makeVisible("var1"); };
obj.onmouseover = function() { makeVisible("var1"); };
obj.onmouseout = function() { makeInvisible("var1"); };
obj.onblur = function() { makeInvisible("var1"); };
}
</script>
</body>
</html>
如果要在
将鼠标悬停在输入上时触发事件,则只需要鼠标悬停和悬停事件。我认为您的问题是由td的高度引起的。当您显示图像时,td 会变大并向下移动,为了防止此问题,您可以使用与图像相同的高度声明 td 的高度。
<td style="height:150px;"><input name="var1" id="var1"></td><td><img name="var1_img" id="var1_img" src="http://placehold.it/350x150" style="display:inline-block; position:relative; left:-20px" onclick="callClickEvent(this)"/></td>
试试这个工作示例。
相关文章:
- 当鼠标悬停在文本中的单词上时显示警报
- d3.js鼠标悬停鼠标输出问题
- 悬停(鼠标离开)方法不显示效果
- 为什么addEventListener只执行我的函数,而不为其创建鼠标悬停/鼠标打开事件
- 在鼠标悬停/鼠标出类中的任何元素时更改元素 ID
- 检测鼠标悬停/鼠标单击,无论 Z 顺序/图层级别如何
- 悬停/鼠标悬停功能冲突
- 子元素的 JavaScript 鼠标悬停/鼠标退出问题
- 在 iPad 上触发悬停/鼠标退出/模糊
- 如何通过按钮单击和鼠标悬停/鼠标退出显示和隐藏节点文本?D3/JS.
- 背景图像在悬停/鼠标悬停时消失,菜单在IE中不起作用
- jQuery鼠标悬停/鼠标悬停将不适用于Live
- jQuery-悬停以在刷新时触发悬停/鼠标悬停
- 悬停/鼠标悬停未在元素内部的每次移动中激活
- HighCharts条形图:悬停鼠标时显示条形值
- 鼠标悬停/鼠标离开,鼠标进入/鼠标离开,鼠标悬停闪烁问题
- 滚动时未触发鼠标悬停/鼠标输入
- JavaScript-如何在鼠标悬停/鼠标悬停上同时更改TR中所有TD的背景颜色
- 记住并在悬停鼠标悬停后显示以前活动的导航选项卡
- JavaScript延迟CSS悬停/鼠标悬停效果