javascript - 为什么 $(this) 在点击时正确调用但在悬停时不正确?

标签 javascript jquery

为什么这是按元素工作的?

<script>
$(document).ready(function(){
  $("p").click(function(){
    $(this).hide();
  });
});
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p>Click me too!</p>

如果你点击每一个,它就会消失。

但是如果我用鼠标悬停来编码......

<script>
$(document).ready(function(){
  $("p").hover(function(){
    $(this).hide();
  });
});
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p>Click me too!</p>

他们一起消失了。有什么区别?

最佳答案

这是因为当您将鼠标悬停在第一个 <p> 上方时元素,它消失了,因此第二个 <p>元素向上移动以取代它的位置 - 这个过程重复直到所有 <p>元素被隐藏起来,因为您的鼠标将始终悬停在它们上方。

关于javascript - 为什么 $(this) 在点击时正确调用但在悬停时不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18947239/

相关文章:

javascript - 如何将 Highcharts xAxis 格式从每年更改为每月?

javascript - 将纯 JavaScript 转换为 jQuery

javascript - 动态创建/删除元素

javascript - 第二次单击时运行的函数

javascript - 使用 jQuery 从 HTML 中删除数据属性

javascript - jquery:立即停止功能

javascript - 如何使用 jquery 根据多个复选框更改 <div> 文本?

javascript - Breeze 为使用 WebAPI 构建的应用程序提供什么值(value)?

浏览器 url 中的 javascript 命令弹出警报

jquery - 从 json 兄弟中提取数据?