相关文章推荐
空虚的毛豆  ·  Analyzing rare ...·  2 周前    · 
想出家的绿茶  ·  aws的elastic ip ...·  1 年前    · 

jQuery Click Outside Div简介

jQuery点击Div外被点击的元素不是容器本身或Div元素的后裔。我们可以绑定到文档的点击事件,用jQuery隐藏div容器。对于一个下拉菜单来说,一个必须具备的功能就是能够在点击外面隐藏元素。在用户点击外部的时候,我们需要隐藏一个div的情况下,这也是很有用的。

jQuery点击外面的div概述

  • jQuery使得在用户点击外部的时候隐藏一个div或元素变得简单。我们可以利用事件目标属性来检测一个元素外的点击,比如一个下拉菜单。该属性会返回引起该事件的DOM元素。
  • 在这种情况下,应避免使用停止传播方法,因为它中断了正常的DOM树事件流。
  • 如何使用jQuery在div外点击?

  • 一个下拉菜单必须具备的功能是能够在点击外面隐藏元素。在用户点击外部的时候,我们需要隐藏一个div的情况下,这也是很有用的。
  • 停止传播功能可以禁用事件传播到父组件。因此,当我们点击一个子元素时,父元素不应该被点击。
  • 将点击事件处理程序附加到一个元素外的区域,如文档,以检测元素外的点击。使用事件处理程序中的jQuery nearest方法,我们可以确定元素或元素的后代的目标。
  • 我们可以使用jQuery来监听html元素上的点击事件,当我们在元素外点击时触发一个事件。然后我们可以在事件处理程序中检查哪个元素被点击了。
  • 然后用点击事件监听器来调用点击它。$('html')被用来选择一个html元素。目标属性返回被点击的元素。
  • 因此,当我们点击我们创建的div之外时,控制台会记录'clicked outside'。为了检查用户对文档的点击情况,我们可以使用jQuery的mouseup方法。
  • mouseup的jQuery事件是与这个方法绑定的。一个特定的元素会触发该事件。
  • 这个方法结合了on ('mouseup,' handler) 和 trigger ('mouseup') 方法。当鼠标指针在一个元素上,鼠标按钮被释放,mouseup事件被派发到该元素。
  • 下面的例子显示了jQuery在div外的点击使用mouseup方法来检查用户对文档的点击。
  • <!DOCTYPE html>
    <script src = "https://ajax.googleapis.com/ajax/libs/jQuery/3.3.1/jQuery.min.js"></script>
    <script>
    $(document).mouseup(function(e)
    var container = $("#target");
    if (!container.is(e.target) && container.has(e.target).length === 0)
    container.hide ();
    </script>
    </head>
    <p id = "pid"> jQuery click outside div </p>
    <button id = "btn1"> jQuery Click </button>
    </body>
    </html>
    
  • 通配符选择会选择页面上的每一个元素;我们可以在选择完所有的元素后为我们的特定元素恢复设置。
  • 否则,我们可以把我们的元素放到一个div中,更新这个div的点击事件处理程序,然后对这个div中的特定元素应用同样的逻辑。
  • 当使用jQuery时,我们必须使用stop Propagation方法来确定当点击发生在一个元素之外。
  • 停止传播方法可以防止事件被传播到父项。如果我们点击一个子元素,父元素不应该被点击。
  • container.has (e.target).length == 0

  • 是确定点击目标是否是容器元素的一个子元素。然而,如果我们验证长度为零,当我们想看它是否为真时,这将评估太假,例如当我们想隐藏容器时,点击它的一个父元素。
  • jQuery点击div外的删除元素

  • 有两种方法可以隐藏或暴露一个元素,这取决于鼠标是否在它外面被点击。
  • 当鼠标向上的事件被触发时,应该首先检查文档。在目标点击时,最近的方法被调用。在DOM树中,这个函数返回元素的第一个祖先。
  • 长度属性被应用于结果以计算祖先的数量。如果没有任何祖先,那么点击就发生在该元素之外。然后,使用hide方法,该元素被掩盖了。
  • 下面的例子显示了jQuery在div外点击删除的元素,如下所示。
  • `<!DOCTYPE html>   <html>   <head>   <title>`
    

    在div外点击删除元素

    <!DOCTYPE html>
    <title>
    Click outside div delete Element
    </title>
    <style>
    .container {
    height:200px;
    width: 200px;
    background-color: Red;
    border: 4px solid black;
    </style>
    <script src =
    "https://code.jQuery.com/jQuery-3.4.0.min.js">
    </script>
    </head>
    <h1 style = "color: Red">
    JQuery click outside div delete Element
    This example shows a click outside the div delete element.
    <p> Click outside to the dive delete element. </p>
    <div class = "container" style = "color:Red"> </div>
    <script type="text">
    $(document).mouseup(function (e) {
    if ($(e.target).closest(".container").length
    === 0) {
    $(".container").hide();
    </script>
    </body>
    </html>
    

    JQuery在div外点击删除元素

    `</h1>   <b>`
    

    这个例子显示了在div delete元素外的点击:

    <!DOCTYPE html>
    <title>
    Click outside div delete Element
    </title>
    <style>
    .container {
    height: 200px;
    width: 200px;
    background-color: red;
    border: 5px solid black;
    </style>
    <script src=
    "https://code.jQuery.com/jQuery-3.4.0.min.js">
    </script>
    </head>
    <h1 style="color: red">
    jQuery click outside div delete Element
    This example shows a click outside the div delete element.
    <p>Click outside to the dive delete element.</p>
    <div class="container" style="color:red"></div>
    <script type="text/javascript">
    $(document).mouseup(function (e) {
    var container = $(".container");
    if(!container.is(e.target) &&
    container.has(e.target).length === 0) {
    container.hide();  }
    </script>
    </body>
    </html>
    
  • 下面的例子显示了检查内容是否包含点击目标。绕过有点击目标的is和has方法,元素被测试两件事:点击没有落在元素上。
  • 该方法是否将当前元素与指定元素进行比较?点击目标被作为参数提供,整个结果被否定,以查看点击是否发生在元素之外。
  • 当用户点击一个div或元素时,jQuery可以简单地将其隐藏起来。当用户导航离开这个元素时,这个div将被隐藏。要检测点击事件并在点击某个特定元素之外时隐藏DIV,请使用jQuery mouseup事件的目标属性。

    这是一个关于jQuery Click Outside Div的指南。这里我们讨论了如何使用jQuery Click outside div以及概述和代码。你也可以看看下面的文章来了解更多------。

  •