悬停时 jQuery 克隆迭代 div

标签 jquery html hover clone each

我有一系列的 div,我想将它们克隆并在悬停到不同的 div 时显示/隐藏。虽然我已经弄清楚如何使用 jQuery 克隆一个或全部,但我对如何迭代地克隆每个组件却很困惑。

HTML,本质上是:

<div id="test">
  <div id="source1" class="src">content1</div>
  <div id="source2" class="src">content2</div>
  <div id="source3" class="src">content3</div>      
</div>

<div id="dest"></div>

我认为答案可能涉及一个each函数;但是,对于 jquery.min.js,以下脚本错误为“Function.prototype.apply 的第二个参数必须是数组”:

$(".src").hover(function() {
 $(".src").each(function() {
  $(this).clone().appendTo('#dest');
  return false;
  $('#dest').show();        
 }, function() {
  $('#dest').hide();
  $('#dest').html('');
 });
});

这个位确实可以很好地在悬停时克隆每个(不是每个).src div:

$('.src').hover(function() {
    $('.src').clone().appendTo('#dest');
    $('#dest').show();
}, function() {
    $('#dest').hide();
    $('#dest').html('');
}); 

所以,回顾一下,我希望当我将鼠标悬停在每个 .src div 上时将其克隆到 #dest div,然后当我将鼠标移开时消失。然后下一个 .src div 应该在悬停时执行相同的操作,依此类推...无需为每个 sourceN div 编写单独的脚本。请各位聪明人,我做错了什么?

最佳答案

您的假设是正确的,您需要使用 $(this) 符号。

$('.src').hover(function() {
    $(this).clone().appendTo('#dest');
    $('#dest').show();
}, function() {
    $('#dest').hide();
    $('#dest').html('');
});

关于悬停时 jQuery 克隆迭代 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6975251/

相关文章:

javascript - jQuery - 按单元格值对 tr 着色

javascript - 用户输入时进行单词替换 (JS)

javascript - 如何在 Backbone Marionette ui click 中获取被点击的元素

Jquery无法选择div

javascript - jQuery 微醉 : Dynamically update title

javascript - 如何在按下 div 时将其动画化到右侧,然后在再次按下时使用 jQuery 将其返回到第一个位置?

python - BeautifulSoup 给了我 unicode+html 符号,而不是直接的 unicode。这是错误还是误解?

html - 通过html隐藏密码

html - 如何在 CSS 悬停中访问顶层的另一个元素?

jQuery,将鼠标悬停在有序的颜色数组上,然后在单击时设置悬停颜色