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

当我尝试使用相同的函数名称模糊将事件(特别是“模糊”)添加到 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>

或任何其他名称它开始工作。有人能告诉我为什么吗?



慕慕森
浏览 120回答 2
2回答

汪汪一只猫

有一个非常优雅的解决方案 - 不使用 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>

凤凰求蛊

我想如果您尝试使用background透明更改 try 并且不要使用blur,它是一个冲突的关键字(原因见下文):function abc(element) {&nbsp; element.style.background = "lime";}function aaa(element) {&nbsp; element.style.backgroundColor = "transparent";}<form action="">&nbsp; <label for="">Name</label> <input type="text" id="fname" onfocus="abc(this)" onblur="aaa(this)">&nbsp; <br><br>&nbsp; <label for="">class</label> <input type="text" onfocus="abc(this)" onblur="aaa(this)">&nbsp; <br><br>&nbsp; <label for="">Country</label>&nbsp; <select name="" id="">&nbsp; &nbsp; <option value="">Pakistan</option>&nbsp; &nbsp; <option value="">India</option>&nbsp; &nbsp; <option value="">America</option>&nbsp; &nbsp; <option value="">China</option>&nbsp; </select></form>默认情况下,作用域是window作用域,window.blur()或者blur()是对象的事件处理程序window,并且不能被覆盖。因此您无法覆盖任何这些window相关属性。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript