阻止element組件中的 的粘貼功能


需求: 阻止element組件中的<el-input/>的粘貼功能

      實現思路: <el-input/>組件是由外層<div>和內層的<input>組成的, 根據瀏覽器的事件傳遞機制(先捕獲,后冒泡): 粘貼的時候會先執行綁定在外層div上的paste事件捕獲方法, 然后再到內層的input, 因此可以在組件上捕獲監聽paste事件, 並阻止向下傳播即可

代碼實現:

<template>
  <section class="p-10">
    <div class="app">
      <el-input v-model="val" placeholder="請輸入內容" @paste.native.capture.prevent="handlePaste"/>
    </div>
  </section>
</template>
<script> export default { data() { return { val: '' }; } }; </script>

 

 

事件修飾符說明:

  • native: 表明這個是dom的原生事件,如果不加native, vue會認為paste是一個自定義事件,必須要在組件內手動觸發, 那么在粘貼的時候自然就不會觸發了
  • capture: 表明這個方法在捕獲階段執行,默認為冒泡執行,參考addEventListener方法中的useCapture參數
  • prevent: 相當於event.preventDefault阻止默認行為, 同時也會阻止事件的向下傳遞和向上冒泡
 
嗯,就醬~~
鏈接:https://www.jianshu.com/p/4d9d83fed298


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM