javascript - jquery 的鼠标事件问题

标签 javascript mouseevent jquery

我创建了一个菜单并尝试使用 mouseover (mouseenter) 和 mouseout(mouseleave),但不幸的是,如果您将鼠标移动得太快,则不会触发某些事件,并且悬停图像不会变回原始图像。

我需要使用 mouseover 和 mouseout 事件而不是悬停,因为如果单击图像,我需要显示原始图像。

请查看演示: Demo link

最佳答案

我不认为每个图标使用两个不同的图像元素是个好主意。

单个图像元素

您应该为每个图标使用一个元素,并在触发 mouseover 和 mouseout 时切换类和图像 src。

像这样(最小的例子):

 $(".side_left").mouseover(function() {
    $(this).prop("src", "http://www.spiritualawakeningradio.com/yaha.jpg");
 }).mouseout(function(){
    $(this).prop("src", "http://img.creativemark.co.uk/uploads/images/461/13461/smallImg.png");
 });

工作 fiddle :DEMO

使用 CSS sprites 更新

这是一个更好的 CSS Sprite 示例。不需要 JavaScript 和大部分标记,只需要一些 CSS:

.side_left {
    width: 60px;
    height: 60px;
    background: url('http://i.imm.io/mvRL.png');
}
.side_left:hover {
    background-position: 60px;
}

工作 fiddle :DEMO

关于javascript - jquery 的鼠标事件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10219209/

相关文章:

javascript - 当我写入文件时如何正确捕获错误?

jquery - Leaflet不同的悬停和点击事件

jQuery fadeTo 和 fadeIn 除了 JSFiddle 之外在任何地方都不起作用

jquery - 使用 Jsrender 迭代嵌套的 json 模型

javascript - 当鼠标离开浏览器时停止保存到 JSON 文件

jquery - 使用 jquery 添加的 MS 过滤器

javascript - 延迟执行 html 页脚,直到 Javascript 加载

javascript - redux 连接到组件 typescript DispatchProps<any> 错误

javascript - 如何使用 Javascript 以编程方式更改 html 中的 div 位置?

java - 如何使用 Java 以编程方式将 MouseEvent 触发到 MouseListener?