为什么Vue.js键修饰符仅适用于`<button>`而不适用于`<div>`?

永不珠穆朗玛峰

请参考此Codepen中的工作示例。

如果单击按钮并使用向上/向下箭头键,则按钮填充将增加/减少。

相关的HTML是:

<div class="inline-block {{ highlight_css }}">
    <button @click="toggleEditMode"
            @keydown.up.prevent="morePadding"
            @keydown.down.prevent="lessPadding"
            v-bind:style="padding"
            class="bgc-hf8f8f8 font-size-1rem line-height-23 bold border-1px-solid-gray border-radius-3">
        {{ status_text }}<br>padding: {{ amount }}px;
    </button>
</div>

向上箭头键的示例Vue.js方法:

morePadding: function() {
    if(this.editable) {
        this.amount++;
        this.padding = 'padding: ' + this.amount + 'px;';
    }
},

一切正常,直到我将<button>标签更改<div>标签。@click作品,但关键修饰语似乎坏了。

阅读了文档,但是找不到说<div>标签很特殊的东西

i

div元素默认情况下无法聚焦。要使其具有焦点,可以添加一个tabindex属性。如果您不希望通过顺序导航对元素进行迭代,请使用负值。

new Vue({
  el: '#highlight',
  data: {
    button_text: 'Disabled',
    amount: 0,
    highlight_css: '',
    padding: '',
    editable: false
  },
  methods: {
    toggleEditMode: function() {
      this.editable = !this.editable;
      this.changeText();
      this.highlight();
    },
    changeText: function() {
      if(this.editable){
        this.button_text = 'Enabled';
      }
      else {
        this.button_text = 'Disabled';
      }
    },
    highlight: function() {
      if(this.editable){
        this.highlight_css = 'border-2px-solid-orange border-radius-3';
      }
      else {
        this.highlight_css = '';
      }
    },
    morePadding: function() {
      if(this.editable) {
        this.amount++;
        this.padding = 'padding: ' + this.amount + 'px;';
      }
    },
    lessPadding: function() {
      if(this.editable && this.amount > 0) {
        this.amount--;
        this.padding = 'padding: ' + this.amount + 'px;';
      }
    }
  }
});
@import 'https://cdn.jsdelivr.net/foundation/6.2.0/foundation.min.css';
.inline-block {
  display: inline-block
}
.bold {
  font-weight: bold
}
.border-5px-solid-orange {
  border: 5px solid orange
}
.talign-center {
  text-align: center
}
.border-1px-solid-gray {
  border: 1px solid gray
}
.bgc-blue {
  background-color: blue
}
.border-radius-3 {
  border-radius: 0.1875em
}
.display-none {
  display: none
}
.white {
  color: white
}
.padding-top-50 {
  padding-top: 3.125em
}
.padding-5 {
  padding: 0.3125em
}
.padding-10 {
  padding: 0.625em
}
.padding-top-20 {
  padding-top: 1.25em
}
.bgc-hf8f8f8 {
  background-color: #f8f8f8
}
.margin-top-30 {
  margin-top: 1.875em
}
.border-1px-solid-orange {
  border: 1px solid orange
}
.text-align-center {
  text-align: center
}
.display-inline {
  display: inline
}
.red {
  color: red
}
.margin-bottom-20 {
  margin-bottom: 1.25em
}
.border-2px-solid-orange {
  border: 2px solid orange
}
.line-height-23 {
  line-height: 1.4375em
}
.font-size-1rem {
  font-size: 1rem
}
.margin-top-50 {
  margin-top: 3.125em
}
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.js"></script>
<div id="highlight" class="row padding-top-20">
  <div class="large-12 columns large-centered text-align-center margin-top-30">
    <!--Editing Container-->
    <div class="margin-bottom-20">Click the button.<br>Then use the up and down arrow keys to change button padding.</div>
    <div class="inline-block {{ highlight_css }}">
      <div tabindex="-1" type="submit" @click="toggleEditMode" @keydown.up.prevent="morePadding" @keydown.down.prevent="lessPadding" v-bind:style="padding" class="bgc-hf8f8f8 font-size-1rem line-height-23 bold border-1px-solid-gray border-radius-3">
        {{ button_text }}<br>padding: {{ amount }}px;
      </div>
    </div>
  </div>
  <div class="large-12 columns margin-top-50">
    <pre>{{ $data | json }}</pre>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么加载事件的addEventListener不适用于div?

来自分类Dev

理解为什么纯CSS视差效果适用于div,但不适用于body标签吗?

来自分类Dev

为什么`event.preventDefault()`不适用于两个嵌套的div?

来自分类Dev

为什么:first-child选择器不适用于div?

来自分类Dev

为什么jQueryUI手风琴不适用于ajax调用后绘制的div?

来自分类Dev

为什么z-index不适用于具有绝对位置的div元素

来自分类Dev

悬停不适用于动画div

来自分类Dev

翻译属性不适用于div

来自分类Dev

slideToggle不适用于多个div

来自分类Dev

不适用于CSS的div

来自分类Dev

单击不适用于内部div

来自分类Dev

ngClick不适用于div元素

来自分类Dev

css 属性不适用于 div

来自分类Dev

css 不适用于 div

来自分类Dev

CSS不适用于div元素

来自分类Dev

jquery 抖动不适用于 div

来自分类Dev

为什么附加文本区域仅适用于.text而不适用于.val?

来自分类Dev

为什么图例选择仅适用于“ ax.twinx()”而不适用于“ ax”?

来自分类Dev

为什么Multi Peer Connectivity仅适用于MCAdvertiserAssistant而不适用于MCNearbyServiceAdvertiser

来自分类Dev

表单验证仅适用于type = button而不适用于type = submit?

来自分类Dev

通用JS函数适用于某些div,不适用于其他div

来自分类Dev

JavaScript 脚本仅适用于 chrome,不适用于 Firefox。(拖动div的脚本)

来自分类Dev

为什么我的函数适用于矩阵但为什么不适用于向量?

来自分类Dev

似乎无法弄清楚为什么DIV不适用于整个部分,PHP / HTML DIV问题

来自分类Dev

为什么提交输入样式既不适用于Safari(Mac)也不适用于Chrome,而仅适用于背景颜色?

来自分类Dev

为什么除了高度和宽度之外的任何 CSS 都不适用于我的 div?

来自分类Dev

为什么File.WriteAllBytes不适用于.db文件,但适用于.csv文件?

来自分类Dev

RTSP流不适用于python,但适用于VLC。为什么?

来自分类Dev

为什么一个HANDLE不适用于WriteConsoleInput,但适用于WriteFile?

Related 相关文章

  1. 1

    为什么加载事件的addEventListener不适用于div?

  2. 2

    理解为什么纯CSS视差效果适用于div,但不适用于body标签吗?

  3. 3

    为什么`event.preventDefault()`不适用于两个嵌套的div?

  4. 4

    为什么:first-child选择器不适用于div?

  5. 5

    为什么jQueryUI手风琴不适用于ajax调用后绘制的div?

  6. 6

    为什么z-index不适用于具有绝对位置的div元素

  7. 7

    悬停不适用于动画div

  8. 8

    翻译属性不适用于div

  9. 9

    slideToggle不适用于多个div

  10. 10

    不适用于CSS的div

  11. 11

    单击不适用于内部div

  12. 12

    ngClick不适用于div元素

  13. 13

    css 属性不适用于 div

  14. 14

    css 不适用于 div

  15. 15

    CSS不适用于div元素

  16. 16

    jquery 抖动不适用于 div

  17. 17

    为什么附加文本区域仅适用于.text而不适用于.val?

  18. 18

    为什么图例选择仅适用于“ ax.twinx()”而不适用于“ ax”?

  19. 19

    为什么Multi Peer Connectivity仅适用于MCAdvertiserAssistant而不适用于MCNearbyServiceAdvertiser

  20. 20

    表单验证仅适用于type = button而不适用于type = submit?

  21. 21

    通用JS函数适用于某些div,不适用于其他div

  22. 22

    JavaScript 脚本仅适用于 chrome,不适用于 Firefox。(拖动div的脚本)

  23. 23

    为什么我的函数适用于矩阵但为什么不适用于向量?

  24. 24

    似乎无法弄清楚为什么DIV不适用于整个部分,PHP / HTML DIV问题

  25. 25

    为什么提交输入样式既不适用于Safari(Mac)也不适用于Chrome,而仅适用于背景颜色?

  26. 26

    为什么除了高度和宽度之外的任何 CSS 都不适用于我的 div?

  27. 27

    为什么File.WriteAllBytes不适用于.db文件,但适用于.csv文件?

  28. 28

    RTSP流不适用于python,但适用于VLC。为什么?

  29. 29

    为什么一个HANDLE不适用于WriteConsoleInput,但适用于WriteFile?

热门标签

归档