jQuery事件检测 - 使用鼠标删除输入框文本,拖动文本到输入框

9
我能够使用以下代码检测到“剪切、复制、粘贴”事件。
$('#searchInput').bind('cut copy paste', function (e) {
  setTimeout("handleMouseEvents();", 10);
});

是否可以检测以下事件

  1. 使用鼠标删除输入框中的文本
  2. 将文本拖动到输入框中
  3. 将文本从输入框拖出
  4. 通过鼠标上下文菜单或表单“编辑”菜单撤消操作

我尝试绑定 mousedownmouseup,但没有起作用

$('#searchInput').bind('cut copy paste mousedown mouseup', function (e) {
  setTimeout("handleMouseEvents();", 10);
});
1个回答

2
我能够使这些事件绑定起来,包括剪切、复制、粘贴、鼠标按下、鼠标抬起、聚焦和失焦,这应该可以涵盖删除、拖出和拖入的情况,但您不一定知道那么多的细节,只知道字段已经更改,以及哪个绑定事件导致了更改,我认为您还需要在事件之间跟踪输入字段的当前/上一个值。

这是我正在玩耍的jsfiddle http://jsfiddle.net/9aRxb/1/


你有在Firefox中检查过演示吗?它在Firefox 3.6.15中无法工作,但在IE和Chrome中可以。 - Mithun Sreedharan
看起来你可以绑定多个拖放事件网络剪贴板操作1.0:复制,粘贴,拖放。我在一些drop dragleave等上测试了火狐浏览器,所有的都按预期工作。 - MikeM
1
根据我所知,它不能与删除一起使用。 (右键单击所选文本,然后从菜单中选择“删除”) - BobRodes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接