javascript - 单击 div 元素以外的任何位置时删除该 div 元素

标签 javascript jquery html

我在删除使用 JavaScript 创建的 div 元素时遇到了麻烦。我将此函数称为 onclick 元素。

function makediv(){
        var div = document.createElement('DIV');
        $(div).attr('id','md');
        $(div).css({"left":e.pageX,"top":e.pageY });
        $("body").append(div);
    }

当我单击该 div 以外的其他位置时,我将如何尝试删除它。 在我点击其他地方之前,div 甚至出现了,它在创建时就被删除了。

window.onclick = function(event)
    {           
        dl=$('#md');
        if(event.target!=dl)
            dl.remove();
    }

我也尝试过这个。

window.onclick = function(event)
    {
        if($('#md').length!=0){

        dl=$('#md');
        if(event.target!=dl)
            dl.remove();
        }
    }

但是此代码在创建 div 元素时将其删除。

最佳答案

您可以使用 jQuery 来编写更短、更简单的代码。

function makediv() {
  $("body").append("<div id='md'></div>");
}

$(document).ready(function() {
  makediv(); /* Call the function to add the div */
});

$(document).click(function(e) {
  /* Check if id is mb. If it is not, remove the div */
  if ($(e.target).attr("id") != "md") $("#md").remove();
});
#md {
  width: 100px;
  height: 100px;
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

关于javascript - 单击 div 元素以外的任何位置时删除该 div 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48789074/

相关文章:

javascript - 在javascript中将时间间隔转换为持续时间

javascript - html5 - 绘制多个圆圈 - 每个圆圈填充不同的图像

html - 如何仅对未排序列表中的第一个列表项设置不同的样式

javascript - HTML5 - 碰撞

jquery - 从 Gmail 下拉选择菜单

javascript - 使用 jquery css 覆盖的同位素过滤器无法按预期工作

javascript - 是否可以在 jquery 中创建一个事件监听器来显示 div 的变化?

html - 尽管我遵循了路径,但 href 不想被打印

javascript - 当我使用 ES 模块时,为什么变量在浏览器控制台中不可用?

javascript - ASP.NET 如何使用 ajax 将文本从文本框推送到另一个页面