javascript - 如何在使用 JQuery 悬停该 HTML 元素时在元素内设置工具栏?

标签 javascript jquery html css

$('body').on('mouseover mouseout', '*:not(.printToolBar)', function (e) {
    if (this === e.target) {
        (e.type === 'mouseover' ? setMenuBox(e.target) : removeMenuBox(e.target));
    }
});

function setMenuBox (obj){
    $(obj).wrap('<div class="toolBarWrapper" style="position:relative;"/>');
    $(".toolBarWrapper").append($('.printToolBar'));
}

function removeMenuBox (obj){
    $(".toolBarWrapper").remove('.printToolBar');
    $(obj).unwrap();
}

function createToolBar(){
    var ul = $("<ul>").attr({
        'class': "printToolBar",
        style: "border: 1px solid #ff0000; position:absolute; top:0 ; right: 0;"
    });
    var li = $("<li>").attr({
        'className': "printToolBarList"
    }).text('Print');
    var printLi = li.clone().attr({
        id: "print"
    }).on('click',function(e){ 
        console.log(this);
    });     
    ul.append(printLi).appendTo("body");
};
createToolBar();

这就是我试图用每个 HTML 元素设置菜单栏的方法,但我无法自行分离菜单栏上的事件,这会引发一些 JS 错误,是否有其他方法可以实现一样吗?

最佳答案

要删除 ul 元素上的“悬停”行为,我认为您需要更新第一行代码:

$('body').on('mouseover mouseout', '*:not(.printToolBar), *:not(ul)', function (e) {
     if (this === e.target) {
        (e.type === 'mouseover' ? setMenuBox(e.target) : removeMenuBox(e.target));
     }
});

通过这种方式,您可以将 mousevent 附加到除 ul 和 .printToolbar 之外的所有元素

编辑:

删除 UL child 的附件:

$('body').on('mouseover mouseout', '*:not(ul.printToolBar), *:not(ul.printToolBar >    *)', function (e) {
    if (this === e.target) {
       (e.type === 'mouseover' ? setMenuBox(e.target) : removeMenuBox(e.target));
    }
});

关于javascript - 如何在使用 JQuery 悬停该 HTML 元素时在元素内设置工具栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13580704/

相关文章:

javascript - 如何删除 map() 中的重复项

javascript - websocket 服务器,存储数据

html - 使用 clojurescript 在 HTML 页面上渲染 Three.js 场景

javascript - 读取/"Include"某些本地文件 - 离线 - 使用 JavaScript

javascript - Express.js 代理发布请求

javascript - Facebook JS API 问题,revokeAuthorization

javascript - 语法错误 - 逻辑 if 语句

javascript - 窗口失焦时恢复选项

javascript - 淡出图像,新图像在图像缩略图库顶部淡出

Javascript函数不修改html