【问题标题】:catch paste event捕捉粘贴事件
【发布时间】:2011-09-04 10:50:32
【问题描述】:

我需要一个捕获复制和粘贴事件。我有一个例子。但是粘贴事件触发了 4 次。为什么?我需要一次。这是代码?请帮帮我?

$(function() {
  return $('#myform').bind('paste', function(e) {
    return alert("123");
  });
});

【问题讨论】:

  • 它只在 Safari 5.1 中触发一次……这是一个测试页面jsfiddle.net/u5LkE
  • Firefox 和 chrome 也会触发一次
  • 它在 Ubuntu 11.04 的 Chromium 中触发了两次。为什么事件不同?
  • @Zeck 听起来像是浏览器中的错误。你应该报告它。 (在 Mac 版 Chrome 13 中这不是问题。)
  • @Trevor Burnham。好的,谢谢你们。

标签: javascript jquery copy-paste coffeescript paste


【解决方案1】:

我不确定您在哪个浏览器中遇到了四个事件被触发,但我刚刚为自己测试了您的代码,但无法重现该行为。话虽如此,您的代码存在一些问题......

  1. 绑定事件后无需returnjQuery对象。

  2. 不需要return alert(),因为alert返回undefined

看看这些变化:

$(function() {
  $('#myform').bind('paste', function(e) {
    console.log(e.type);
  });
});

观看直播:http://jsfiddle.net/rwaldron/6CKxM/

【讨论】:

  • 对不起,我是从 CoffeeScript 编译的。
  • 嘿,我明白了。这是 CoffeeScript 的错误。
  • 如果 Coffeescript 正在生成该代码,那么您应该提出问题:github.com/jashkenas/coffee-script/issues
  • 这不是 CoffeeScript 错误。 @Rick,当 CoffeeScript 没有引起他们的问题时,请不要建议人们在 CoffeeScript 上提出问题。是的,CoffeeScript 有隐式返回,这给这里的 JS 输出增加了一些噪音。但是那些returns,虽然是多余的,但没有任何作用。 (只有 false 的返回值对 jQuery 事件回调有任何影响,而 alert 根本不返回任何内容。)
  • 如果您有这样的感觉,那么我很乐意自己针对生成的代码提交问题单。感谢您通过 jQuery 事件回调向我解释 return false 的用例来提供帮助,但我肯定已经控制住了。另外,我欢迎您亲自将这篇评论带给我——考虑到您住在剑桥,而我住在波士顿。本周任何时候都可以随时到 Bocoup loft @ 355 Congress St. 停留,我们可以讨论格式不正确的转译器代码的危害。
猜你喜欢
  • 1970-01-01
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多