jquery“show”效果显示错误的元素
jquery "show" effect shows wrong element
我正在尝试获取两个图标"向上"和"向下",当我将鼠标悬停在它们上时,它们的颜色变深。所以我又做了两个图标,"UpHover"和"DownHover",它们开始是隐藏的,当我鼠标进入向上或向下时分别显示,当我鼠标离开它们时再次隐藏。向下工作正常,但由于某种原因,当我鼠标输入向上时,向上和向下都被隐藏,并且显示向上和向下悬停。
当我擦除行$(".UpHover").show();
(我在下面加星号)时,效果停止,因此错误必须在该行中。但是我一辈子都想不通为什么这条线与向下或向下悬停有任何关系。我错过了什么?
<%= link_to image_tag("Up.png", class: "Up"), '#' %>
<%= link_to image_tag("Down.png", class: "Down"), '#' %>
<%= link_to image_tag("UpHover.png", class: "UpHover"), '#' %>
<%= link_to image_tag("DownHover.png", class: "DownHover"), '#' %>
<script type="text/javascript">
$(".UpHover").hide();
$(".DownHover").hide();
$(".Up").mouseenter(function () {
$(".Up").hide();
***$(".UpHover").show();***
});
$(".UpHover").mouseleave(function () {
$(".Up").show();
$(".UpHover").hide();
});
$(".Down").mouseenter(function () {
$(".Down").hide();
$(".DownHover").show();
});
$(".DownHover").mouseleave(function () {
$(".Down").show();
$(".DownHover").hide();
});
</script>
更改图像的顺序,使替换位于它替换的图像旁边。
<%= link_to image_tag("Up.png", class: "Up"), '#' %>
<%= link_to image_tag("UpHover.png", class: "UpHover"), '#' %>
<%= link_to image_tag("Down.png", class: "Down"), '#' %>
<%= link_to image_tag("DownHover.png", class: "DownHover"), '#' %>
正在发生的事情是,当您隐藏Up
时,Down
图像向上移动以填充该空间。由于那是鼠标所在的位置,因此$(".Down").mouseenter
事件会触发,并且也会被隐藏。
当您重新排序时,UpHover
会填充Up
位置。
正如其他人所建议的,只需使用CSS,您就不需要任何JavaScript:
<%= link_to "#", class: "Up" %>
<%= link_to "#", class: "Down" %>
.Up, .Down
{
display: inline-block;
height: /* height of image */;
width: /* width of image */;
}
.Up
{
background-image: url(Up.png);
}
.Down
{
background-image: url(Down.png);
}
.Up:hover
{
background-image: url(UpHover.png);
}
.Down:hover
{
background-image: url(DownHover.png);
}
你应该使用 CSS 伪类 :hover 来执行此操作,而不是 javascript。
您可以为元素具有慕索时定义一组特殊的样式。指定此样式的备用图像。
最好更改背景位置或在悬停时更改类,
$('.Up').hover(function(){
$(this).addClass('active');
}, function(){
$(this).removeClass('active');
});
相关文章:
- ng消息仅在触摸时显示错误,并在错误的初始显示上转换
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- java脚本的数学方程显示错误的答案
- 如果用户输入的长度小于最小长度,则显示错误消息
- Push方法显示错误
- Javascript设置日期不起作用,显示错误的时间
- 显示错误的Ajax调用无法调试
- 显示错误结果的Javascript
- 分页逻辑显示错误的页码
- 如何显示错误消息
- 表单提交没有'如果为空,则不会显示错误消息
- 使用RecordRTC录制的WebRTC视频在IE和Safari中显示错误
- 如何仅在存在最小值和最大值时才显示错误消息
- AngularJS错误处理:根据错误数组显示错误
- PHP 显示错误的名称值
- 在 api 调用$resource显示错误和成功消息
- 为什么 Angularjs 总是显示错误消息
- 在单选按钮验证中同时显示错误消息
- jQuery'摇动'功能显示错误
- Jquery添加更多和删除冲突并显示错误值