将事件侦听器附加到嵌套元素

时间:2018-08-23 23:11:07

标签: jquery html

我有一个带有工具栏的编辑器,该工具栏在突出显示文本时会弹出。当用户单击工具栏上的任何按钮时,我想做一些事情,但是我的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")
})

1 个答案:

答案 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" 的地方。