【问题标题】:Uncaught TypeError: $(...).find(...).slideDown/slideUp is not a function [duplicate]未捕获的类型错误:$(...).find(...).slideDown/slideUp 不是函数 [重复]
【发布时间】:2018-09-19 04:35:22
【问题描述】:

我有一个简单的图片库,其中每张图片上都隐藏了 figcaption。这是 HTML:

<figure>
<img src="gallery/reef2.jpg" width="400" height="285" alt="Another beautiful example of the Great Barrier Reef"/>
<figcaption>Another cracking shot of the reef from Mark. <span>[Photographer: Mark Willams]</span></figcaption>
</figure>

这里是它的 jQuery:

$("figcaption").hide();
$("figure").each(function() {
    $(this).hover(function() {
        $(this).find("figcaption").slideDown('slow');
    }, function() {
        $(this).find("figcaption").slideUp('slow');
    });
});

不幸的是,当我将鼠标悬停在图像上并远离图像时,什么也没有发生。当我打开 Chrome 的开发者工具时,我可以看到悬停时收到以下消息:

“未捕获的类型错误:$(...).find(...).slideDown 不是函数”

当我将鼠标悬停在图像之外时,我会收到以下消息:

“未捕获的类型错误:$(...).find(...).slideUp 不是函数”

我不确定为什么 slideDown 和 slideUp 不能正常工作,因为 figcaption 是隐藏的。在使用 slideDown 和 slideUp 之前,我使用的是 show 和 hide,效果很好。请帮助我了解如何让 slideDown 和 SlideUp 正常工作。

【问题讨论】:

  • 我猜你使用的是 jQuery 3 slim
  • @epascarello - 看起来这是她正在使用的完整库。
  • @bhansa 我敢打赌你使用了错误的 jQuery 版本
  • @bhansa - 你应该知道得更多。我们需要查看有问题的 OP 的原始代码,而不是您为解决它而添加的代码。
  • 我正在使用 jquery-3.3.1.slim.min.js。

标签: javascript jquery slidedown slideup


【解决方案1】:

您的代码似乎按照编写的方式工作。您确定要包含 jQuery,并且您要包含的版本有 slideUpslideDown

$("figcaption").hide();
$("figure").each(function() {
    $(this).hover(function() {
        $(this).find("figcaption").slideDown('slow');
    }, function() {
        $(this).find("figcaption").slideUp('slow');
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<figure>
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
    9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
<figcaption>Another cracking shot of the reef from Mark. <span>[Photographer: Mark Willams]</span></figcaption>
</figure>

【讨论】:

  • 我正在使用 jquery-3.3.1.slim.min.js。也许这就是问题所在——我可能使用了错误版本的 jQuery?
  • 是的,只需从中删除 .slim 就可以了
  • 更新:我更改为 jquery-3.3.1.min.js,它现在可以按预期工作了!感谢您指出这一点。
  • 不知道为什么你的答案被否决了。一位用户编辑了 OP 的原始问题,以在她的代码中包含一个她从未拥有过的库。这个答案是正确的。
猜你喜欢
  • 2021-03-12
  • 1970-01-01
  • 2015-08-18
  • 2017-02-12
  • 2015-11-20
  • 2020-10-28
  • 2016-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多