在jQuery文档说,库有内置支持下列活动:模糊,焦点,负载,调整大小,滚动,卸载,点击,DBLCLICK,鼠标按下,鼠标松开,鼠标移动,鼠标悬停,鼠标移开,了mouseenter,鼠标离开,改变,选择,提交、按键、按键、按键和错误。
我需要处理剪切、复制和粘贴事件。如何最好地做到这一点?FWIW,我只需要担心 WebKit(幸运的是我!)。
更新:我正在类似仪表板的环境中处理“小部件”。它使用 WebKit,所以真正重要的是(对我而言)这些事件是否在那里受支持,看起来是这样。
在jQuery文档说,库有内置支持下列活动:模糊,焦点,负载,调整大小,滚动,卸载,点击,DBLCLICK,鼠标按下,鼠标松开,鼠标移动,鼠标悬停,鼠标移开,了mouseenter,鼠标离开,改变,选择,提交、按键、按键、按键和错误。
我需要处理剪切、复制和粘贴事件。如何最好地做到这一点?FWIW,我只需要担心 WebKit(幸运的是我!)。
更新:我正在类似仪表板的环境中处理“小部件”。它使用 WebKit,所以真正重要的是(对我而言)这些事件是否在那里受支持,看起来是这样。
您可以使用.on()
和off()
方法添加和删除任何类型的事件
试试这个,例如
jQuery(document).on('paste', function(e){ alert('pasting!') });
jQuery实际上对你分配的事件类型是否被浏览器支持很无所谓,所以你可以为元素(和一般对象)分配任意的事件类型,例如:
jQuery('p').on('foobar2000', function(e){ alert(e.type); });
对于自定义事件类型,您必须.trigger()
在代码中“手动”添加它们,如下所示:
jQuery('p').trigger('foobar2000');
整洁吧?
此外,要以跨浏览器兼容的方式处理专有/自定义 DOM 事件,您可能需要使用/编写“jQuery 事件插件”... jquery.event.wheel.jsBrandon Aaron 的鼠标滚轮插件
Mozilla 支持“输入”事件,我无法找到有用的文档。至少,我知道它会在糊状物上燃烧。
this.addEventListener('input',
function(){//stuff here},
false
);
作为 jQuery 1.7,您可以使用bind(...)和unbind(...)方法分别附加和删除处理程序。
以下是与您的问题保持一致的示例:
$('#someElementId').bind('paste', function(){return false;});
- 这将阻止任何从剪贴板粘贴到元素主体的尝试。您还可以使用cut、copy和其他作为事件类型(请参阅下面的链接)
$('#someElementId').bind('copy', function(){return alert('Hey fella! Do not forget about copyrights!');});
因此,在其他情况下,当您想删除这些处理程序时,可以使用unbind()方法:
$('#someElementId').unbind('copy');
这里有一些有用的链接: