Javascript 模板文本内的事件回调

Javascript 模板文本内的事件回调,javascript,template-literals,Javascript,Template Literals,大家好,我是javascript新手,我正在尝试使用模板文本对用户的点击事件执行回调函数。但是,正在对模板的求值执行回调 row方法由另一个传递项和回调函数的类调用 类Clazz{ 行(项,删除回调){ 返回`` } }我认为更好的方法是从行返回元素,而不是HTML字符串。像这样: class Clazz { row(item, deleteCallback){ const a = document.createElement('a'); a.href = '#';

大家好,我是javascript新手,我正在尝试使用模板文本对用户的点击事件执行回调函数。但是,正在对模板的求值执行回调

row方法由另一个传递项和回调函数的类调用

类Clazz{
行(项,删除回调){
返回``
}

}
我认为更好的方法是从
返回元素,而不是HTML字符串。像这样:

class Clazz {
  row(item, deleteCallback){
    const a  = document.createElement('a');
    a.href = '#';
    a.onclick = () => deleteCallback(item.requestId);
    return a;
  }
}

然后可以使用
append
after
或类似的方法将其添加到DOM中。

我认为更好的方法是从
返回元素,而不是HTML字符串。像这样:

class Clazz {
  row(item, deleteCallback){
    const a  = document.createElement('a');
    a.href = '#';
    a.onclick = () => deleteCallback(item.requestId);
    return a;
  }
}

然后可以使用
append
after
或类似的方法将其添加到DOM中。

deleteCallback(item.requestedId)
是一个函数调用,而不是事件处理程序所期望的函数引用<代码>${}将执行其中的任何内容。但调用可能返回一个函数;)完全可能,除了与第一段问题陈述不匹配外,^我想问题是如何使用
row()
的结果?因为您试图将回调函数变量粘贴到html中,将其转换为文本以解析为html。我的直觉是,只要用这个方法创建一个
a
标记和
addEventListener
,但是使用
row()
的任何东西都可能期望字符串作为response@Taplar内联事件监听器(这里是内联事件监听器)不需要函数引用。他们只需要一个任意的JS块。不过,内联事件侦听器是不好的做法。
deleteCallback(item.requestedId)
是事件处理程序所期望的函数调用,而不是函数引用<代码>${}将执行其中的任何内容。但调用可能返回一个函数;)完全可能,除了与第一段问题陈述不匹配外,^我想问题是如何使用
row()
的结果?因为您试图将回调函数变量粘贴到html中,将其转换为文本以解析为html。我的直觉是,只要用这个方法创建一个
a
标记和
addEventListener
,但是使用
row()
的任何东西都可能期望字符串作为response@Taplar内联事件监听器(这里是内联事件监听器)不需要函数引用。他们只需要一个任意的JS块。不过,内联事件侦听器是一种糟糕的做法。