为了账号安全,请及时绑定邮箱和手机立即绑定

为什么事件模糊不能与函数名称模糊一起使用?

为什么事件模糊不能与函数名称模糊一起使用?

慕慕森 2023-07-06 10:07:56
当我尝试使用相同的函数名称模糊将事件(特别是“模糊”)添加到 HTML 时,为什么它不起作用但是当我使用另一个函数名称(例如模糊或 abc)时function abc(element){  element.style.background="lime"}function blur(element){  element.style.background=""}<!DOCTYPE html><html><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=">  <title></title></head><body>  <form action="">    <label for="">Name</label> <input type="text" id="fname" onfocus="abc(this)" onblur="blur(this)">    <br><br>    <label for="">class</label> <input type="text" onfocus="abc(this)" onblur="blur(this)">    <br><br>    <label for="">Country</label>    <select name="" id="">      <option value="">Pakistan</option>      <option value="">India</option>      <option value="">America</option>      <option value="">China</option>    </select>          </form>  </body></html>或任何其他名称它开始工作。有人能告诉我为什么吗?
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

有一个非常优雅的解决方案 - 不使用 javascript,而是使用 css 伪类焦点:

:focus CSS 伪类表示已接收焦点的元素(例如表单输入)。它通常在用户单击或点击某个元素或使用键盘的 Tab 键选择它时触发。

在你的情况下:

.lime-focused-input:focus {

    background:lime;

}

<!DOCTYPE html>

<html>

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=">

  <title></title>

</head>

<body>

  <form action="">

    <label for="">Name</label> <input type="text" id="fname" class="lime-focused-input">

    <br><br>

    <label for="">class</label> <input type="text" class="lime-focused-input">

    <br><br>

    <label for="">Country</label>

    <select name="" id="">

      <option value="">Pakistan</option>

      <option value="">India</option>

      <option value="">America</option>

      <option value="">China</option>

    </select>

  </form>

</body>

</html>


查看完整回答
反对 回复 2023-07-06
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

我想如果您尝试使用background透明更改 try 并且不要使用blur,它是一个冲突的关键字(原因见下文):


function abc(element) {

  element.style.background = "lime";

}


function aaa(element) {

  element.style.backgroundColor = "transparent";

}

<form action="">

  <label for="">Name</label> <input type="text" id="fname" onfocus="abc(this)" onblur="aaa(this)">

  <br><br>

  <label for="">class</label> <input type="text" onfocus="abc(this)" onblur="aaa(this)">

  <br><br>

  <label for="">Country</label>

  <select name="" id="">

    <option value="">Pakistan</option>

    <option value="">India</option>

    <option value="">America</option>

    <option value="">China</option>

  </select>

</form>

默认情况下,作用域是window作用域,window.blur()或者blur()是对象的事件处理程序window,并且不能被覆盖。

//img1.sycdn.imooc.com//64a622340001366a02080037.jpg

因此您无法覆盖任何这些window相关属性。


查看完整回答
反对 回复 2023-07-06
  • 2 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信