Javascript IE9中的文本输入焦点异常
我正在尝试这个相当简单的代码。当第一个输入上有Javascript IE9中的文本输入焦点异常,javascript,jquery,html,internet-explorer-9,Javascript,Jquery,Html,Internet Explorer 9,我正在尝试这个相当简单的代码。当第一个输入上有mouseup时,应该将焦点转移到相邻的文本输入: <!DOCTYPE html> <html> <head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script> <script> $(document).ready
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>
$(文档).ready(函数(){
$(“.foo”).mouseup(函数(){
$(“.boo”).focus();
});
});
除了IE9
(我不敢在IE8
或以下版本中测试它!)之外,在所有浏览器中,它对左键和右键都可以正常工作(对于右键mouseup
,即使焦点转移到第二个输入,第一个输入时上下文菜单仍然会弹出)。然而,在IE9中,焦点仍然是第一个文本输入(上下文菜单也会弹出)
有没有办法解决这个问题,以便将焦点转移到第二个问题?您能试试这些备选方案中的一个吗?他们过去在IE8中为我工作过,他们可能会为你工作 备选方案1:模糊然后聚焦
$(".foo").mouseup(function(){
$(".boo").blur();
$(".boo").focus();
});
备选方案2:使用setTimeout
$(".foo").mouseup(function(){
setTimeout(function () {
$(".boo").focus();
}, 100);
});
ie中的.select()应该可以工作:
还通过返回false来处理上下文菜单。
希望有帮助 你能试着在纯JS中这样做,看看它是否有效吗?所以document.getElementById(element.focus();让我试试。给我两分钟……不。它不起作用,正如预期的那样:(好吧,它起作用了。有没有类似于
contextmenu
事件的jQuery?非常感谢,伙计!你救了我一天!伙计,另一个问题,IE8也支持它?快速模拟一个非jQuery版本,并在ie7,8标准模式下运行(F12)工作正常,所以应该可以,你应该检查一下,你能告诉我jQuery版本是否也可以工作吗?我没有IE8用于测试..:(
$(document).ready(function(){
$('.foo').mouseup(function() {
$('.boo').focus();
});
$('.foo').contextmenu(function() {
$('.boo').select();
return false;
});
});