我正在尝试这个相当简单的代码。只要第一个mouseup
上有<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script>
$(document).ready(function() {
$(".foo").mouseup(function() {
$(".boo").focus();
});
});
</script>
</head>
<body>
<input type='text' class='foo' />
<input type='text' class='boo' />
</body>
</html>
,就应该将焦点移到相邻的文本输入上:
IE9
在除IE8
以外的所有浏览器中(我不敢在mouseup
或更低版本中测试它!),它对于左键和右键都适用(对于右键IE9
,即使焦点转移到第二个输入,上下文菜单仍然会弹出第一个输入。但是,在{{1}}中,焦点仍然在第一个文本输入上(上下文菜单也会弹出)。
有没有办法解决它,以便焦点转移到第二个?
答案 0 :(得分:3)
你能尝试其中一种替代方案吗?他们过去曾在IE8中为我工作,他们可能会为你工作。
备选方案1:模糊然后聚焦
$(".foo").mouseup(function(){
$(".boo").blur();
$(".boo").focus();
});
备选方案2:使用setTimeout
$(".foo").mouseup(function(){
setTimeout(function () {
$(".boo").focus();
}, 100);
});
答案 1 :(得分:3)
.select()in ie应该可以工作:
$(document).ready(function(){
$('.foo').mouseup(function() {
$('.boo').focus();
});
$('.foo').contextmenu(function() {
$('.boo').select();
return false;
});
});
还通过返回false来处理上下文菜单。 希望有所帮助!