Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当操作在div或输入字段中时,是否显示并保持div可见?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 当操作在div或输入字段中时,是否显示并保持div可见?

Javascript 当操作在div或输入字段中时,是否显示并保持div可见?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,当用户单击/聚焦输入字段时,我想在输入字段下显示一个div,当焦点不在或用户在div或输入字段外单击时隐藏该div。 在这个提琴示例中,当我单击input时,将显示一个div,当我在输入字段外单击时,它将被隐藏 但我希望在以下条件下保持div可见: 1. When input is focused/clicked. 2. When click is within the div(.options). 在以下情况下,应隐藏div: 1. Input is unfocused and click

当用户单击/聚焦输入字段时,我想在输入字段下显示一个div,当焦点不在或用户在div或输入字段外单击时隐藏该div。 在这个提琴示例中,当我单击input时,将显示一个div,当我在输入字段外单击时,它将被隐藏

但我希望在以下条件下保持div可见:

1. When input is focused/clicked.
2. When click is within the div(.options).
在以下情况下,应隐藏div:

1. Input is unfocused and click in not within div.
2. Click outside div.
您可以按以下方式尝试使用relatedTarget:

$function{ 变量inputField=$'input_field'; var optionsResult=$‘选项’; inputField.focusinfunction e{ e、 防止违约; 选项result.show; }.focusoutfunction e{ 相关目标{ ife.relatedTarget.tagName!=“A” 选项result.hide; } 否则{ 选项result.hide; } }; }; $document.on'click',function e{ ife.target.tagName==“HTML”{ $‘选项’。隐藏; } }; .选项{ 显示:无; 位置:绝对位置; 浮动:左; 宽度:300px; 高度:200px; 背景:eee; } a{ 显示:块; 浮动:左; 宽度:100%; } 另一个数据集 您可以按以下方式尝试使用relatedTarget:

$function{ 变量inputField=$'input_field'; var optionsResult=$‘选项’; inputField.focusinfunction e{ e、 防止违约; 选项result.show; }.focusoutfunction e{ 相关目标{ ife.relatedTarget.tagName!=“A” 选项result.hide; } 否则{ 选项result.hide; } }; }; $document.on'click',function e{ ife.target.tagName==“HTML”{ $‘选项’。隐藏; } }; .选项{ 显示:无; 位置:绝对位置; 浮动:左; 宽度:300px; 高度:200px; 背景:eee; } a{ 显示:块; 浮动:左; 宽度:100%; } 另一个数据集
确保body标签包含你的应用程序,并且它是窗口的全宽和全高。添加en event listener以查看单击事件是否在options div之外,而不是输入字段之外。如果是这种情况,请隐藏options div

身体{ 高度:100vh; 宽度:100%; }
确保body标签包含你的应用程序,并且它是窗口的全宽和全高。添加en event listener以查看单击事件是否在options div之外,而不是输入字段之外。如果是这种情况,请隐藏options div

身体{ 高度:100vh; 宽度:100%; }
当您在输入字段内单击,然后直接单击div内的任何链接时,它的工作并不完美。之后,无论您在何处单击div,都将保持可见。除非您再次单击输入字段,然后单击主体。当您单击输入字段内部,然后直接单击div内部的任何链接时,这将无法正常工作。此后,无论您在何处单击div,都将保持可见。除非您再次单击输入字段,然后单击正文。
$(function () {
    var inputField = $('#input_field');
    var optionsResult = $('#options');
    var options = document.querySelector('#options');

    // Listen for click events on body
    document.body.addEventListener('click', function (event) {
      // hide options if click is outside of options div and not the input element
      if (!options.contains(event.target) && event.target.id !== 'input_field') {
        optionsResult.hide();
      }
    });

    inputField.focusin(function (e) {
        e.preventDefault();
        optionsResult.show();
    });
});