Here是我的代码:
$(document).ready(function(){
$('a').bind('mouseenter', function() {
var self = $(this);
this.iid = setTimeout(function() {
var tag_name = self.text(),
top = self.position().top + self.outerHeight(true),
left = self.position().left;
$('body').append("<div class='tag_info'>Some explanations about "+tag_name+"</div>");
$(".tag_info").css({top: top + "px", left: left + "px"}).fadeIn(200);
}, 525);
}).bind('mouseleave', function(){
if(this.iid){
clearTimeout(this.iid)
remove($('.tag_info'));
}
});
});
正如您在我提供的小提琴中所看到的,当您的鼠标离开标签时,该黑盒仍然存在。为什么?我该如何删除它?
答案 0 :(得分:6)
请改用以下代码。
$('.tag_info').remove();
答案 1 :(得分:2)
remove($('.tag_info'));
应该是
$('.tag_info').remove();
答案 2 :(得分:1)
。
$('.tag_info').remove();
答案 3 :(得分:1)
$(document).ready(function(){
$('a').bind('mouseenter', function() {
var self = $(this);
this.iid = setTimeout(function() {
var tag_name = self.text(),
top = self.position().top + self.outerHeight(true),
left = self.position().left;
$('body').append("<div class='tag_info'>Some explanations about "+tag_name+"</div>");
$(".tag_info").css({top: top + "px", left: left + "px"}).fadeIn(200);
}, 525);
}).bind('mouseleave', function(){
$('.tag_info').remove();
});
});
body{
padding: 20px;
}
a {
color: #3e6d8e !important;
background-color: #E1ECF4;
padding: 2px 5px;
}
.tag_info{
position: absolute;
width: 130px;
height: 100px;
display:none;
background-color: black;
color: white;
padding: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a>tag1</a>
<a>tag2</a>
check the code `https://jsfiddle.net/uz6y3L2y/3/` may help you.
答案 4 :(得分:0)
您正在以错误的方式使用jquery函数remove(),这就是为什么它不会删除具有类.tag_info
的元素。请按照documentation
remove($('.tag_info')); // Not Correct
你需要像这样使用它
$('.tag_info').remove();