【问题标题】:Error with jQuery syntax?jQuery语法错误?
【发布时间】:2013-05-19 14:08:21
【问题描述】:

基于堆栈溢出帖子的答案:Change background color on mouseover and remove it after mouseout

下面的代码应该设置css来显示:block;悬停和显示:无;当他们悬停时。

任何人都可以看到下面的代码有什么问题吗? (没有发生控制台错误)我基本上是想让自己成为一个简单的工具提示。

$(function () {
    $(document).on('hover', '.inter [class]', function () {
        $('._22t').css({
            'display': 'block'
        });
    }, function () {
        $('._22t').css({
            'display': 'none'
        });
    });
});

【问题讨论】:

  • on() 只接受一个函数参数,而不是两个。阅读文档。
  • 也许你应该试试$('._22t').toggleClass('your_css_class');
  • 那么简单地将其更改为 $('.inter [class]').hover() 就可以解决问题?
  • 如果在您运行它时所有元素都存在,这将起作用。

标签: jquery css


【解决方案1】:

on 不接受 2 个回调函数,除此之外,您不能将 hover 伪事件名称与 on 方法一起使用:

在 jQuery 1.8 中已弃用,在 1.9 中删除:名称“hover”用作字符串 "mouseenter mouseleave" 的简写。它为这两个事件附加了一个事件处理程序,处理程序必须检查event.type 以确定事件是mouseenter 还是mouseleave。不要将“悬停”伪事件名称与接受一两个函数的.hover() 方法混淆。

$(document).on('mouseenter mouseleave', '.inter [class]', function(event) {
    $('._22t').toggle(event.type === 'mouseenter');
});

【讨论】:

    猜你喜欢
    • 2013-05-23
    • 2010-12-22
    • 2015-05-07
    • 2012-09-09
    • 2012-03-21
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多