为什么.remove()不会删除元素?

时间:2017-07-09 10:48:38

标签: javascript jquery html css

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'));
    }
  });
});

正如您在我提供的小提琴中所看到的,当您的鼠标离开标签时,该黑盒仍然存在。为什么?我该如何删除它?

5 个答案:

答案 0 :(得分:6)

请改用以下代码。

$('.tag_info').remove();

答案 1 :(得分:2)

remove($('.tag_info'));

应该是

$('.tag_info').remove();

答案 2 :(得分:1)

首先在jQuery选择器中定义

$('.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();