如何删除mouseleave上的下一个追加?

20yco

我的代码有问题;当我添加mouseenter元素时,工具栏会附加到该元素,但是当我mouseleave从工具栏添加到元素时,工具栏会再次添加。如何防止重新添加?

$('.el').on('mouseenter', function(e){

  var toolbar = $('<div class="toolbar"><span>leave toolbar to element</span></div>');  

    setTimeout(function(){
        toolbar.addClass('widget-over');
    },100);

    $('body').prepend(toolbar);

    toolbar.css({
        left:$('.el').offset().left,
        top:$('.el').offset().top - toolbar.height() - 20
    });

    $('.el').on('mouseleave',function(e){
        if ($(e.relatedTarget).closest(toolbar).length) return;
        toolbar.removeClass('widget-over');
        toolbar.remove();
    });

    toolbar.on('mouseleave',function(e){
        toolbar.remove();
    });
});

非常感谢社区的回答!正是杰里米·蒂尔Jeremy Thille)阿伦·P ·约翰尼Arun P Johny)吉文斯(Jivings)

  1. 问题小提琴->小提琴
  2. 解决小提琴->小提琴
吉文斯

麻烦在于,每次有一个时,您都在创建事件处理程序mouseover我将它们分开以使其更简单,这似乎已解决了您的错误:

var toolbar = $('<div class="toolbar"><span>leave toolbar to element</span></div>');  
toolbar.on('mouseleave',function(e){
    toolbar.remove();
});    

var enter = function(e) {

    setTimeout(function(){
        toolbar.addClass('widget-over');
    },100);

    $('body').prepend(toolbar);

    toolbar.css({
        left: $el.offset().left,
        top: $el.offset().top - toolbar.height() - 20
    });    
};

var leave = function(e){
    if ($(e.relatedTarget).closest(toolbar).length) return;
    toolbar.removeClass('widget-over');
    toolbar.remove();
}

var $el = $('.el')
    .on('mouseenter', enter)
    .on('mouseleave', leave);

JSfiddle:http : //jsfiddle.net/3r8wrumL/2/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查文本板中的下一个空行并追加下一个输入

来自分类Dev

jQuery删除下一个div元素的下一个

来自分类Dev

Vim:从光标删除到下一个期间

来自分类Dev

在C ++中删除链表下一个指针

来自分类Dev

删除下一个元素-Javascript

来自分类Dev

删除viewcontroller并移至下一个view controller

来自分类Dev

删除字符,直到下一个'\ n'

来自分类Dev

删除输入到下一个空间

来自分类Dev

如何删除vim中的下一个字符(不是当前字符!)?

来自分类Dev

删除项目后如何在角度列表中查找下一个空闲ID

来自分类Dev

如何在VS Code中删除对下一个匹配项的选择

来自分类Dev

如何删除JS数组中的下一个相等元素

来自分类Dev

如何从javascript或lodash中的数组中删除所有下一个元素

来自分类Dev

删除项目后如何在角度列表中查找下一个空闲ID

来自分类Dev

如何删除正文标签中标头和下一个div元素之间的空间?

来自分类Dev

如何使用JavaScript删除表格中的下一个单元格?

来自分类Dev

如何在下一个ul中添加和删除类?

来自分类Dev

如何删除多次出现的字符并只留下一个

来自分类Dev

如何在RecyclerView中追加下一个新项目?

来自分类Dev

如何在RecyclerView中追加下一个新项目?

来自分类Dev

如果下一个表事务失败,如何删除上一个表事务

来自分类Dev

如何删除Eureka表单中的<>(下一个/上一个)完成工具栏?

来自分类Dev

我如何删除“上一个”和“下一个” innerHTML而不破坏它们

来自分类Dev

如何为iPhone用户从多个表单中删除“下一个”和“上一个”按钮?

来自分类Dev

如果下一个表事务失败,如何删除上一个表事务

来自分类Dev

如何从列表中删除一个项目并从下一个项目开始计数?

来自分类Dev

AngularJS-按键上的下一个输入

来自分类Dev

滚动到正文上的下一个div

来自分类Dev

在RichTextBox上查找下一个

Related 相关文章

  1. 1

    如何检查文本板中的下一个空行并追加下一个输入

  2. 2

    jQuery删除下一个div元素的下一个

  3. 3

    Vim:从光标删除到下一个期间

  4. 4

    在C ++中删除链表下一个指针

  5. 5

    删除下一个元素-Javascript

  6. 6

    删除viewcontroller并移至下一个view controller

  7. 7

    删除字符,直到下一个'\ n'

  8. 8

    删除输入到下一个空间

  9. 9

    如何删除vim中的下一个字符(不是当前字符!)?

  10. 10

    删除项目后如何在角度列表中查找下一个空闲ID

  11. 11

    如何在VS Code中删除对下一个匹配项的选择

  12. 12

    如何删除JS数组中的下一个相等元素

  13. 13

    如何从javascript或lodash中的数组中删除所有下一个元素

  14. 14

    删除项目后如何在角度列表中查找下一个空闲ID

  15. 15

    如何删除正文标签中标头和下一个div元素之间的空间?

  16. 16

    如何使用JavaScript删除表格中的下一个单元格?

  17. 17

    如何在下一个ul中添加和删除类?

  18. 18

    如何删除多次出现的字符并只留下一个

  19. 19

    如何在RecyclerView中追加下一个新项目?

  20. 20

    如何在RecyclerView中追加下一个新项目?

  21. 21

    如果下一个表事务失败,如何删除上一个表事务

  22. 22

    如何删除Eureka表单中的<>(下一个/上一个)完成工具栏?

  23. 23

    我如何删除“上一个”和“下一个” innerHTML而不破坏它们

  24. 24

    如何为iPhone用户从多个表单中删除“下一个”和“上一个”按钮?

  25. 25

    如果下一个表事务失败,如何删除上一个表事务

  26. 26

    如何从列表中删除一个项目并从下一个项目开始计数?

  27. 27

    AngularJS-按键上的下一个输入

  28. 28

    滚动到正文上的下一个div

  29. 29

    在RichTextBox上查找下一个

热门标签

归档