You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js如何将data中的url绑定到click方法并在新标签页打开

Vue.js点击事件绑定数组内URL无法跳转的解决方法

问题根因

你的chocs是数组类型,模板中没有遍历该数组,直接在点击事件中传递的choc属于未定义变量,因此方法内无法读取到对应的url值。

解决方案

场景1:仅需要调用数组内第一条url

直接修改按钮的点击事件传参即可,修改后HTML代码如下:

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <h2>my hat</h2>
  <button v-on:click="myclick2(chocs[0])">
    my link
  </button>
</div>

场景2:需要给数组内每一条数据都生成对应跳转按钮

用v-for遍历数组渲染按钮,修改后HTML代码如下:

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <h2>my hat</h2>
  <div v-for="(choc, index) in chocs" :key="index">
    <button v-on:click="myclick2(choc)">
      打开链接{{index + 1}}
    </button>
  </div>
</div>

兼容性优化

如果window.open触发浏览器弹窗拦截,可以替换方法内的打开逻辑,模拟a标签点击跳转:

methods: {
  myclick2: function(choc){
    const aTag = document.createElement('a')
    aTag.href = choc.url
    aTag.target = '_blank'
    aTag.click()
  }
}

内容的提问来源于stack exchange,提问作者Vzupo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:45:05