Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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
Javascript 尝试将事件数据传递给函数_Javascript_Jquery - Fatal编程技术网

Javascript 尝试将事件数据传递给函数

Javascript 尝试将事件数据传递给函数,javascript,jquery,Javascript,Jquery,我试图将一些数据传递给函数,但下面的代码有一个问题。当我试图使用$(this.data(“id”)时,如果我只是使用ABC作为一个值,它似乎无法工作 $(".printLabel").click({ recordId: $(this).data("id") }, printLabel); function printLabel(event){ var data = event.data; console.log(data.recordId); } 在您提供的对象中,

我试图将一些数据传递给函数,但下面的代码有一个问题。当我试图使用
$(this.data(“id”)
时,如果我只是使用
ABC
作为一个值,它似乎无法工作

$(".printLabel").click({
    recordId: $(this).data("id")
},  printLabel);

function printLabel(event){
    var data = event.data;
    console.log(data.recordId);
}

在您提供的对象中,
是对
窗口的引用,而不是单击的元素,因此您要查找的数据属性未定义

假设
data
属性位于
.printLabel
元素本身,则可以在事件处理程序中直接检索它,而无需发送任何事件参数。试试这个:

$(".printLabel").click(function() {
    var recordId = $(this).data("id")
    console.log(recordId);
}); 

为什么以更容易理解的方式调用函数会出现问题?另外,如果坚持要传递对象,则需要使用传递的对象-
var data=event.data也不起作用。下面是我的建议,也可以使用对象:

$(.printLabel”)。在(“单击”,函数(){
printLabel({recordId:$(this).data(“id”)});
});
函数printLabel(passedObject){
日志(passedObject.recordId);
}


这是id1
这个
不是您认为的那样,我的问题是我需要从“click”以外的位置调用函数,因此为了防止重复代码,我希望函数分开。在这种情况下,分别定义函数,并让它包含两个参数,即要更新的元素和
id
值。然后,您可以在
单击
处理程序中调用它,也可以在其他需要的地方调用它。@user2517737您应该提供复制问题的具体示例。我真的不太明白你的意思/期望?!