javascript - 捕获 onPaste 并将事件传递给函数 javascript/jQuery

标签 javascript jquery

这似乎是一个非常愚蠢的问题,但我似乎无法弄清楚如何捕获 onPaste 事件,并将其传递给函数进行处理。

$("input").on({
  'paste': function getdata(e) {

   var value = getdata();
   alert("you pasted" + value);
},
   'keyup': function getdata(e) {

    var value = getdata();
    alert("you pasted" + value);
}

});


function getdata(e) {
    if(window.clipboardData && window.clipboardData.getData) {
        value = window.clipboardData.getData('Text');
    } else if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.getData) {
        value = e.originalEvent.clipboardData.getData('text/plain');
    }

    return value; 

}

最佳答案

您的问题是您已经为事件处理程序指定了名称:

$("input").on({
  'paste': function getdata(e) {

   var value = getdata();
   alert("you pasted" + value);
   ....
});

您已调用事件处理程序getdata。当您在函数内调用 getdata() 时,它会再次运行事件处理程序。这显然会导致无限循环。

删除命名函数表达式:

$("input").on({
  'paste': function (e) {

   var value = getdata(e);
   alert("you pasted" + value);
   ....
});

对代码的另外两项更正。

首先,您没有在 getdata 中定义 value。您需要使用 var value;

启动该函数

其次,您没有将事件传递给getdata。您需要使用 getdata(e) 调用它。

This fiddle显示您的代码完美运行。

关于javascript - 捕获 onPaste 并将事件传递给函数 javascript/jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19741032/

相关文章:

javascript - 隐藏第一个元素然后延迟显示另一个元素 - Jquery

javascript 正则表达式 unicode 帮助

javascript - 将选择标签的外观更改为单选按钮

jquery - MVC 4 中使用 jQuery 表单提交的部分 View 和模型

javascript - 使用 jquery 引导表单验证

javascript - 在图像中查找特定颜色

javascript - 无法关闭 Fancybox iFrame

javascript - 奇怪的 json 用法

javascript - 在 script.aculo.us 中使用 jQuery noConflict()

javascript - 在 Javascript 中禁用/不可点击 HTML 按钮