Firefox在链接上触发焦点事件(Opera也是如此)。当我试图将处理程序附加到链接以防止它获得焦点,而不是将焦点传递给邻居输入字段时,发生了一些奇怪的事情。Firefox触发焦点事件两次,而Opera只触发一次。可能它以某种方式与js-events的捕获和冒泡阶段相关联,但我不确定,因为在这两种情况下,.eventphase- jQuery事件obj的属性等于2,即冒泡。
下面是一个测试页面:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Text1</title>
</head>
<body>
<a href="#" id="click">click</a>
<input type="text" id="to_pass">
<script type="text/javascript">
var i = 1;
document.getElementById('click').onfocus = function() {
console.log(i);
i += 1;
document.getElementById('to_pass').focus();
return false;
}
</script>
</body>
</html>
当点击发生时,会有一个调用计数回显到控制台中。
发布于 2012-02-23 09:07:20
在这种情况下,请使用click()
而不是focus()
var i = 1;
$('#click').click(function(ev) {
ev.preventDefault();
console.log(i);
$('#to_pass').focus();
i += 1;
})
https://stackoverflow.com/questions/9409870
复制相似问题