blur()与onblur()
我有一个带有onblur事件监听器的输入标签:
通过JavaScript,我想在这个输入上触发blur事件,以便它反过来调用doSomething
函数。
我最初的想法是调用模糊:
document.getElementById('myField').blur()
但这不起作用(虽然没有错误)。
这样做:
document.getElementById('myField').onblur()
这是为什么? .click()
将通过onclick监听器调用附加到元素的click事件。 为什么blur()
工作方式不一样?
这个:
document.getElementById('myField').onblur();
因为你的元素( )有一个名为“onblur”的属性,其值是一个函数。 因此,你可以调用它。 但是,您并没有告诉浏览器模拟实际的“模糊”事件; 例如,没有创建事件对象。
元素没有“模糊”属性(或“方法”或其他),所以这就是为什么第一件事不起作用。
与尖端所说的相反, blur()
方法确实存在并且是w3c标准的一部分。 以下exaple将适用于每个现代浏览器(包括IE):
Javascript test
请注意,我使用了link.onmouseover
而不是link.onclick
,因为否则点击本身会删除焦点。
我想这只是因为输入失去焦点而调用onblur事件,没有与输入相关联的模糊操作,就像有一个按钮关联的点击操作