0

我有一些 img 图标在点击时链接到各种外部网站(电子邮件、facebook、twitter 等),我试图让它们div在悬停时在另一个网站上显示一些隐藏的文本。

这个线程中的第二个小提琴链接完成了类似于我想用 CSS 做的事情,但是我正在尝试使用 jQuery 为显示/隐藏设置动画slideToggle(),我已经在页面的其他部分实现了它,所以 css 赢了不做。

该线程似乎具有我正在寻找的内容,但是我已将其用作模板,但到目前为止没有任何效果,我很困惑。这是我的代码,任何建议将不胜感激:

    $('div.tooltip').hide();
$('img.tooltip').hover(function() {

    which = $(this).attr("class");
    selector = 'div.' + which;
    slide = $(selector).slideToggle();
    console.log(slide);
});

ps - 我认为问题可能是当我调用slideToggle()它时不会撤消第hide()1 行的调用,但是当我注释掉该调用并更改一些简单的东西(如字体颜色)时,仍然没有骰子。

编辑:为澄清起见, theimg及其对应的div共享相同的类名(例如img.tooltip email应该触发div.tooltip email等),这就是我使用“which”和“selector”的原因。

4

2 回答 2

2

您的问题很可能与which = $(this).attr("class");将返回元素具有的所有类的空格分隔列表的行有关。由于图像至少具有这样.tooltip的含义,因此它将查找类型为带有类工具提示的 div 的后代的元素。由于很可能没有元素类型,因此不会返回任何内容。selectordiv.tooltip someotherclasssomeotherclasssomeotherclass

编辑:

如果您只使用两个类,如您的问题中的情况,您可以将代码更改为

$('img.tooltip').hover(function() {
    which = $(this).attr("class").replace('tooltip', '').replace(' ','');
    selector = 'div.' + which;
    slide = $(selector).slideToggle();
    console.log(slide);
});

tooltip这将从类字符串制作中删除该类,which = 'email'而不是which = 'tooltip email'

于 2013-09-24T09:20:32.673 回答
0

slide = $('div.tooltip').slideToggle();

不行?我对为什么需要该函数的前两行感到困惑。

于 2013-09-24T09:19:53.897 回答