vuejs正在使用没有事件处理程序的修改后的事件指令,可以吗?

时间:2019-02-04 16:45:02

标签: vue.js event-handling

在以下代码段中,fireCheck捕获了<li>上的点击并切换了所附的复选框。

在复选框上,我对Click侦听器进行了修改,以阻止事件冒泡至父元素(这可防止封闭<li>的Click处理程序触发并引发错误),但实际上没有任何内容可以处理复选框的click事件。

<li v-for="datum in data" @click="fireCheck($event)">
    <input @click.stop type="checkbox" v-model="datum.checked" v-bind:value="data.name"/>
</li>

我是作为冰雹玛丽来做的,在当前版本的主要浏览器中都不会产生任何错误。这不好吗?

1 个答案:

答案 0 :(得分:0)

不好吗?是的,是的,不是。据我所知,您的输入仍然可以通过键盘访问(即使屏幕阅读器无法找到有关该复选框的任何信息),并且您的模型仍然是被动的。

也就是说,您正在重新发明轮子。标签html元素将表单字段与描述链接在一起。它还捕获点击,并根据表单字段的类型来突出显示表单字段,对其进行切换或打开文件对话框。您应该真正使用它而不是自己的实现。

<li v-for="datum in data">
  <label>
    <span class="screen-reader">{{ datum.name }}</span>
    <input type="checkbox" v-model="datum.checked" :value="datum.name">
  </label>
</li>