2017-04-12 57 views
1

我想增强我的论坛软件。可以说我有一个ID为123的div。显示悬停中的现有div

现在有人回复此div并引用它。如果有人悬停在报价单上,我想展示这个div。

我试过这个,但没有成功。

$(".referal").hover(function() { 
    var id_post = $(this).attr('id') 
    $('#reply_' + id_post).show(); 
}); 

它获得正确的ID,但不知何故只有在我将其粘贴到控制台时才会执行。现有的div也不会在报价附近再次显示。

我误会了演出事件吗?我以前用.clone尝试过,但也没有成功。

回答

2

编辑: 柄柱号码作为全局ID:

var id_post; 
$(".referal").hover(function() { 
    id_post = $(this).attr('id') 
    $('#reply_' + id_post).show();  
}); 

$(".referal").on("mouseout",function() { 
    $('#reply_'+id_post).hide(); 
}); 

的jsfiddle

https://jsfiddle.net/0vjkxz9y/4/

这是你想要做什么工作示例:

$('#reply_5').hide(); 
$(".referal").hover(function() { 
    var id_post = $(this).attr('id') 
    $('#reply_' + id_post).show(); 
}); 

$(".referal").on("mouseout",function() { 
    $('#reply_5').hide(); 
}); 

https://jsfiddle.net/0vjkxz9y/

+0

这是一件好事,除了鼠标移开只处理#reply_5,没有任何可能的答复。应该有一个叫做回复的类,在mouseout上隐藏所有的类, –

+0

你是绝对正确的。这只隐藏了特定的答案作为示例,我们可以将id_post保存在悬停上,并在mouseout上使用相同的值(如果我们确实需要的话)。 – ProgrammerV5

+1

我喜欢这个答案,以确定它:我**认为**你可以使用''$('div [id^=“reply _”]')。hide()'..但未测试..这应该隐藏所有div的ID前缀'reply_' ..编辑:https://jsfiddle.net/0vjkxz9y/17/测试工作 – Pogrindis

0

为什么不使用toggleClass试试这个代码

$(".referal").hover(function() { 
    var id_post = $(this).attr('id') 
    $('#reply_'+ id_post +'').show(); 
}); 
+0

有没有必要concat结束..你测试过吗? – Pogrindis

1

$(".referal").on("mouseenter mouseleave", function(event) { 
 
    var id_post = $(this).attr('id'); 
 
    $('#reply_' + id_post).toggleClass("active"); 
 
});
.test { 
 
    display: none; 
 
} 
 
.test.active{ 
 
    display:block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="referal" id="123">This div has ID 123</div> 
 
<div class="test" id="reply_123">This div has ID reply_123</div>