javascript - 我可以在 jQuery 中的 "this"之后添加更多吗?

标签 javascript jquery this

我正在编写一个脚本,当您将鼠标悬停在图像上时,该脚本会淡入淡出图像和我在图像后面设置的 div。我有两个问题:

  1. 图像和 div 上的淡入淡出似乎没有以相同的速度移动,即使我将它们设置为也是如此。

  2. 我不知道如何让 div 只显示您悬停在上面的图像。如果我可以输入 ("this"div.info) 作为一个对象,它会工作得很好。有办法吗?

我无法获取 $(".info",this)$(this).find(".info")$ (".info", $(this).closest("li")) 工作。


结果:我找到了解决方案。我能够通过使用 lthibodeaux 的建议并使用 $(".info", $(this).closest("li")) 作为对象并使所有函数 .fadeTo 到这里查看结果: http://jsfiddle.net/Z5p4K/7/

编辑:

  • 我发现图像和 div 动画确实以相同的速度移动,只是图像仅在悬停时设置了 z-index,所以如果您在动画运行时将鼠标从图像上移开,当图像真的在 div 后面时,它似乎以与 div 不同的速度移动,它只是看起来以不同的速度移动,因为当 div 变得不可见时你可以看到它后面的图像但是当它变得不透明时,图像消失了(让你认为图像变得不可见,而实际上 div 在图像前面)。通过将 z-index 属性从 ul.columns li:hover img 移动到 ul.columns li img 可以轻松解决这个问题。

  • 当您将鼠标悬停在它上面时,div 周围只有一个边框。这很容易通过将边框属性从 ul.columns li:hover .info 更改为 ul.columns li .info

  • 来解决

在这里查看最终版本:http://jsfiddle.net/tV9Bw/

这是最终版本,因为我再也找不到任何代码的问题;一切都经过优化,没有任何问题,而且看起来很棒。

感谢所有回答的人,也感谢 Yi Jiang 以更好的格式编辑了这篇文章。我是这个网站的新手,所以我不确定如何正确地格式化我的问题。

非常感谢 artyom.stv 修复了脚本中我不知道如何修复的最后一个故障。

最佳答案

您已经了解了总体思路。关于选择器,您应该了解的一件事是您可以将第二个参数定义为选择器的范围,即

$("selectorString", scopeObject)

在您的情况下,使第二个参数成为 $(this).closest("li")。它将找到包含您的图像的列表项并选择该容器的 .info 后代:

$(".info", $(this).closest("li")).fadeIn(1000);

关于javascript - 我可以在 jQuery 中的 "this"之后添加更多吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7508706/

相关文章:

javascript - 如何在 Firefox 中获取 JavaScript 堆栈跟踪?

javascript - GAS 中的 Access-Control-Allow-Origin header

javascript - 如何在 JavaScript/jQuery 中弹出模式并运行复选框检查?

java - Java继承中的 "this"关键字是如何工作的?

javascript - Ruby on Rails :Can not call ajax callback from form_tag

javascript - Node.Js 异步使用

javascript - 将对象插入到数组 Javascript/JQuery 的特定位置

Javascript 检查页面 url,然后加载相应的 iframe?

javascript - 在Javascript构造函数中使用 'this'来访问属性

javascript - 如何在jquery函数中找到引用的对象