Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
捕获onPaste并将事件传递给函数javascript/jQuery_Javascript_Jquery - Fatal编程技术网

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

捕获onPaste并将事件传递给函数javascript/jQuery,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" + valu

这似乎是一个非常愚蠢的问题,但我似乎不知道如何捕获
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值启动函数

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


显示您的代码工作正常。

刚刚了解了有关将地图传递到#on!