我正在尝试这个简单的代码,当第一个检测到右键时,它应该将焦点移动到另一个文本框,这样任何后续的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);
替换代码,但错误仍然存在。
任何人都可以告诉我如何解决此问题,以便将文本粘贴到第二个文本框中? (检测mouseup
,检查是否右键单击event.which
,如果是,则转移焦点 - 是的,我也这样做了,结果相同!)
答案 0 :(得分:0)
作为替代解决方案......
$("#real").bind("contextmenu",function() {
$("#paste").val($(this).val());
$(this).val('');
});