javascript - 如何使整行可点击?

标签 javascript html routes vue.js

我正在使用 Vue 并拥有:

<tr v-for="(blabla, index) in data">
  <td>{{ blabla.id }}</td>
  <td>{{ blabla.username }}</td>
  <td>{{ blabla.name }}</td>
  <td>
    <router-link 
      :to="{ name: 'name', params: { blabla: blabla.id } }"
      class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent"
    >
      Details
    </router-link>                     
  </td>                    
</tr>

如何使整行都可点击,而不仅仅是具有路由器链接的按钮?

最佳答案

tr 上添加点击监听器和 change the route programmatically :

<tr v-for="(blabla, index) in data" @click="goToBlabla(blabla.id)">
  <td>{{ blabla.id }}</td>
  <td>{{ blabla.username }}</td>
  <td>{{ blabla.name }}</td>
  <td>
    <a class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent">
      Details
    </a>                     
  </td>                    
</tr>
methods: {
  goToBlabla(id) {
    this.$router.push({ name: 'name', params: { blabla: id } });
  }
}

或者,您可以将 v-for<router-link> 上与 tag属性设置为 tr :

<router-link 
  v-for="(blabla, index) in data" 
  :to="{ name: 'name', params: { blabla: blabla.id } }"
  tag="tr"
>
  <td>{{ blabla.id }}</td>
  <td>{{ blabla.username }}</td>
  <td>{{ blabla.name }}</td>
  <td>
    <a class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent">
      Details
    </a>                     
  </td>                    
</router-link>

将标记指定为 tr会将组件呈现为 tr元素。

关于javascript - 如何使整行可点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45329860/

相关文章:

html - 如何禁用 HTML 中大字的表格大小调整

php - 如何将路由返回到 laravel 中的 View

node.js - 快速路由 "/"

javascript - 三种不同 JS 引擎的三种不同 `this` 行为

javascript - 处理从 Django/JQuery 到 javascript Urllib3 的响应对象

javascript - 使用单选按钮以订单形式动态增加/减少总价

javascript - 具有可观察量的任务队列

iphone - 在基于导航的应用程序中加载本地 HTML 文件

HTML/CSS -( float : left) does not work

c# - 来自 ASP.NET MVC CMS 数据库的动态路由