我试图使用内联onclick处理程序,但我需要绑定到它创建的这个上下文,而不是dom元素本身的这个,但对于我的生活,我可以&#39 ;让这个工作:
onclick="${this._sortTable.bind(this, i)};"
请让我走上正轨。
我使用es6和模板文字:
var container = `<div class="column" style="flex: 0 0 ${WIDTH} !important" data-index="${columnObject.index}" onclick="${this._sortTable.bind(this, i)};">${columnObject.title}</div>`;
我收到以下错误:
Uncaught SyntaxError: Unexpected token (
dom元素肯定看起来很奇怪:
<div class="column" style="flex: 0 0 5.555555555555555% !important" data-index="column7" onclick="function () { [native code] };">COLUMN7</div>
答案 0 :(得分:0)
您可以将_sortable
定义为static
class
函数
class FN {
constructor(prop) {
const div = `<div onclick="FN._sortable(${prop})">click</div>`;
console.log(div);
document.body.innerHTML += div;
}
static _sortable(n) {
console.log(n)
}
}
let c = new FN(123);
&#13;
答案 1 :(得分:0)
使用该代码,您将尝试处理&#34; bind&#34;的输出。当它插入DOM时作为字符串。
最明显的解决方案是首先创建DOM对象,然后将处理程序附加到对象,然后将对象插入DOM。
您甚至可能不需要使用bind来访问&#34;这个&#34;对象 - 特别是如果你创建了一个&#34; me&#34;别名。