Quasar QTable单击可点击行上的操作按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Quasar QTable单击可点击行上的操作按钮相关的知识,希望对你有一定的参考价值。

我正在为我的项目使用类星体框架,而qtable组件存在问题。我通过@ row-click事件使表行可点击。效果很好,但是我的桌子上有一些动作按钮单元格,当我单击任何动作按钮时,首先触发了@ row-click事件。.我需要给一个异常子体单元格。.该怎么办?

答案

您可以在单击时使用.stop,它将仅触发操作的按钮单击事件。

<q-btn icon="info" @click.stop="btnclick" dense flat/>

示例:-

<q-table
  title="Treats"
  :data="data"
  :columns="columns"
  row-key="name" 
  @row-click="onRowClick"
>
  <template v-slot:body-cell-name="props">
    <q-td :props="props">
      <div>
        <q-badge color="purple" :label="props.value"></q-badge>
        <q-btn icon="info" @click.stop="btnclick" dense flat/>
      </div>
    </q-td>
  </template>
</q-table>

codepen-https://codepen.io/Pratik__007/pen/oNjQYBW

另一答案

在您想停止点击动作的任何地方键入以下代码。

<q-btn v-on:click.stop="onClickFunction"/>

此代码将导致Click事件停止父click功能并运行该组件上指定的它自己的Click Function

另一答案

我通过以下方法找到了解决我问题的方法;

 <q-table :data="listProjects(this.$route.params.id)" :columns="columns" row-key="id" @row-click="rowClicker" selection="multiple" :selected.sync="selectedItems">



rowClicker (e, row) {
  if (e.target.nodeName === 'TD') {
    this.$router.push('project/parts/' + row.id)
  }
}

除我按钮的点击外,所有点击均来自TD元素。如果它是由TD元素触发的,它将路由,如果不是,则不会路由。

以上是关于Quasar QTable单击可点击行上的操作按钮的主要内容,如果未能解决你的问题,请参考以下文章

Quasar QTable中的粘性标题

在表格单元格中显示复杂内容时,Quasar qTable 的 q-td 上的 Id 值

模拟网格行上的单击事件

使用 vue-test-utils / jest 触发 Quasar QBtn 点击

jQuery单击gridview行上的选择按钮

可点击元素的 ListView 中的 Android LongClick