我想在vue js中使用HTML5拖放.

我看到了关于拖放的w3schools教程.

我的教程代码和链接是:

我在vue js的方法范围中定义了所有方法.

推荐答案

例如,您只需要调用vue事件,而不是html事件v-on:drop,而不是drop

下面是您在与vue的链接中提供的示例的实现

 <html>
      <head>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <style>
        .droptarget {
      float: left; 
      width: 100px; 
      height: 35px;
      margin: 15px;
      padding: 10px;
      border: 1px solid #aaaaaa;
    }
    </style>
        </style>
      </head>
      <body>
        <div id="app">
          <p>Drag the p element back and forth between the two rectangles:</p>
          <div
            class="droptarget"
            v-on:drop="drop"
            v-on:dragover="allowDrop"
          >
            <p
            v-on:dragstart="dragStart"
              v-on:drag="dragging"
              draggable="true"
              id="dragtarget"
            >
              Drag me!
            </p>
          </div>
    
          <div
            class="droptarget"
            v-on:drop="drop"
            v-on:dragover="allowDrop"
          ></div>
    
          <p style="clear:both;">
            <strong>Note:</strong> drag events are not supported in Internet
            Explorer 8 and earlier versions or Safari 5.1 and earlier versions.
          </p>
    
          <p id="demo"></p>
        </div>
        <script>
          var app = new Vue({
            el: "#app",
           
            methods: {
              dragStart:function(event)  {
                event.dataTransfer.setData("Text", event.target.id);
              },
              dragging:function(event) {
                document.getElementById("demo").innerHTML =
                  "The p element is being dragged";
              },
              allowDrop:function(event) {
                event.preventDefault();
              },
              drop:function(event) {
                event.preventDefault();
                var data = event.dataTransfer.getData("Text");
                event.target.appendChild(document.getElementById(data));
                document.getElementById("demo").innerHTML =
                  "The p element was dropped";
              }
    
            }
          });
        </script>
      </body>
    </html>

Vue.js相关问答推荐

Vue3组合-如何在组件卸载时注销回调

Vuetify 3 v-radio-group 将模型设置为 null

使用内部方法创建计算(computed)属性是否合法?

vuex 未知动作类型:addTodo

带有 netlify.toml 文件的环境变量

Vue-tables-2(vuex)react性不起作用

我可以在未注册的组件上构建 Vue.js 失败吗?

vuejs:将props传递给javascript中的组件?

VuetifyJS,outer-link 未显示为光标

用 axios 搜索:新字符时取消之前的请求

使用 vue-cli 遇到无法推断解析器错误

如何修复跨域读取阻塞 (CORB) 阻止了 MIME 类型应用程序/json 的跨域响应问题?

阻止 Vue 积极重用 dom 元素

交换数组项

如何避免在 Vue 中一直写 this.$store.state.donkey 的需要?

Vue JS 在渲染前等待数据

在 nuxt.js 页面中包含外部 javascript 文件

更改时(change)调用函数

在 Vue 应用程序中创建一个类的单个实例

如何在 Vue 数据对象中运行函数?