小编Far*_*ane的帖子

为什么节点 contains 方法没有捕获对 svg 元素的点击?

我有一个基本的模态,其 html 结构中有一个 svg 图标。我想检测模式之外的点击,以便我可以将其关闭。执行此操作的代码类似于以下内容:

document.addEventListener('mousedown', (e) => {
  if(modal.contains(e.target)) return;
  closeModal();
});
Run Code Online (Sandbox Code Playgroud)

但是,当我单击 svg(位于模态内部)时,单击事件被认为位于模态外部,我不明白为什么。为了让它按照我想要的方式工作,我必须对 svg 元素执行pointer-events: none。

简化的 html 结构如下所示:

  <div class="modal">
    <div class="css-t7awl3">
      <form>
        <div class="css-1incodr">
          <label class="css-g2pzhe" for="previousPassword">
            Mot de passe actuel<span class="css-5fl39m">*</span>
          </label>
        <div class="css-1xm32e0">
          <input
            class="css-17lan49"
            type="text"
            placeholder="**********"
            name="previousPassword"
          />
            <div id="test-input-toggle-password-visibility" class="css-1vw18kh">
              <svg
                height="16"
                viewBox="0 0 32 32"
                fill="none"
                xmlns="http://www.w3.org/2000/svg"
              />
            </div>
          </div>
        </div>
        <button class="css-1pnrrva" disabled="">
          Valider
        </button>
      </form>
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

编辑:如果我在此处粘贴实际的反应代码,也许会有所帮助,因为我不确定它是否是 svg 元素而不是我的代码的问题。

    export const PasswordInput = React.forwardRef<HTMLInputElement, PasswordInputProps>(({
  placeholder,
  name,
  id, …
Run Code Online (Sandbox Code Playgroud)

html javascript svg

7
推荐指数
1
解决办法
1516
查看次数

在bash中循环浏览所有扩展名为.txt的文件

我正在尝试遍历文件夹中的文件并测试.txt扩展名。但是我收到以下错误:“ awk:无法打开=(没有这样的文件或目录)

这是我的代码:

!/bin/bash

files=$(ls);
for file in $files
  do
  # extension=$($file | awk -F . '{ print $NF }');
  if [ $file | awk -F . "{ print $NF }" = txt ]
    then
      echo $file;
    else
      echo "Not a .txt file";
  fi;
done;
Run Code Online (Sandbox Code Playgroud)

bash shell

0
推荐指数
1
解决办法
2223
查看次数

标签 统计

bash ×1

html ×1

javascript ×1

shell ×1

svg ×1