我有一个带有工具栏的编辑器,该工具栏在突出显示文本时会弹出。当用户单击工具栏上的任何按钮时,我想做一些事情,但是我的jquery使用变量作为选择器。正确的语法是什么?
HTML:
<div>
<div class="toolbar">
<button class="bold"></button>
<button class="italics"></button>
</div>
</div>
jquery:
$('#' + this.editorId > 'toolbar' > button).on("click", (event) => {
console.log("button on toolbar clicked")
})
答案 0 :(得分:1)
如果我们假设.toolbar
是<div id="toolbar-container">
<div class="toolbar">
<button class="bold"></button>
<button class="italics"></button>
</div>
</div>
的直接祖先,即
this
然后,如果function () {
this.editorId = document.getElementById("#toolbar-container");
$('#' + this.editorId + ' > .toolbar > button')
.on("click", (event) => {
console.log("button on toolbar clicked")
});
}
是封闭范围的上下文,例如
.toolbar
现在,如果editorId
不是$.find()
的直接后代,那么我们可以使用handler
,而我们的$('#' + this.editorId + ' .toolbar > button')
.on("click", (event) => {
console.log("button on toolbar clicked")
});
将是:
>
我在this.editorId
和.toolbar
之间删除了Unique violation: 7 ERROR: duplicate key value violates unique constraint "yards_pkey"
的地方。