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您应该提供复制问题的具体示例。我真的不太明白你的意思/期望?!