javascript - 如何删除 mouseleave 上 append 的工具栏到主体或其他元素?

标签 javascript jquery append

在我之前的question中回答者 Jivings没有给出完整的信息,我对他的回答有疑问。当我 mouseenter 一个元素时,工具栏会 append 到该元素,但是当我将鼠标从工具栏离开到body(或另一个元素,但不是当前版本!),工具栏不会消失。如何删除 mouseleave 上的工具栏到正文?

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

问题 fiddle -> http://jsfiddle.net/3r8wrumL/7/

最佳答案

使用新类和绑定(bind)动态删除和添加元素。

$(function () {
var toolbar = $('<div class="toolbar"><span>leave toolbar to body and mouseenter element again</span></div>');   

var enter = function(e) {
    console.log('enter')
    setTimeout(function(){
        toolbar.addClass('widget-over');
    },500);

    $('body').prepend(toolbar.on('mouseleave',function(e){ 
        $(this).removeClass("widget-over");
        $(this).remove();        
        console.log('toolbar out');
    }));

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

关于javascript - 如何删除 mouseleave 上 append 的工具栏到主体或其他元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440245/

相关文章:

jQuery、html5、append()/appendTo() 和 IE

python - 创建 panda 数据框并在 for 循环中 append 值

javascript - 如何将react组件转换为html字符串?

javascript - 阻止 Firefox 页面状态缓存

jQuery如何阻止触发的点击事件冒泡

JavaScript:如何将按钮元素的值分配给另一个div元素?

python - numpy数组维度不匹配错误

javascript - 在 d3 中通过退出转换保持元素顺序 (selection.order)

javascript - 使用 jQuery 显示/隐藏复选框

javascript - 如何使用下划线 throttle 进行滚动?