我正在尝试这个简单的代码,它应该在第一个检测到右键单击时将焦点转移到另一个文本框,以便任何后续paste
事件都会将文本粘贴到第二个框中:
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#real").bind("contextmenu",function() {
$("#paste").focus();
});
});
</script>
</head>
<body>
<input type = 'text' sh = '0' right = '0' id = 'real' />
<input type = 'text' id = 'paste' />
<p>Dummy</p>
</html>
在 Opera 12 以上版本中,它运行良好。但是,在 11 及以下版本中,即使在右键单击第一个文本框时焦点确实转移到了第二个文本框,粘贴事件也会将文本粘贴到第一个文本框中(焦点立即转移到第二个文本框,在其自己的)。我试图用 替换代码setTimeout(function() { $("#paste").focus(); },0);
,但错误仍然存在。
谁能告诉我如何解决这个问题,以便将文本粘贴到第二个文本框中?(检测 a mouseup
,检查是否是右键单击event.which
,如果是,则转移焦点 - 是的,我也这样做了,结果相同!)