vue.js - 带有动态数据的 Vue JS 组件中的 jQuery UI 可拖放和可拖放
问题描述
我有一个视图组件,我希望能够将某些元素 ( .draggable
) 拖到其他某些元素 ( .droppable
) 上,如下所示:
<div>
我可以像这样为静态元素设置它mounted()
:
mounted(){
$('.draggable').draggable({
revert: true
})
$('.droppable').droppable({
hoverClass: 'drop-hover',
drop: function(){
console.log('-= dropped =-')
}
})
}
...
<div class="droppable">Drop Here</div>
<div class="draggable">Drag Me</div>
<div class="draggable">Drag Me</div>
<div class="draggable">Drag Me</div>
但是,当我想在 Vue JS 中动态执行此操作时v-for
,jQuery UI 绑定似乎会丢失:
<div v-for="(item, index) in items">
<div class="droppable">{{ item.name }}</div>
<div v-for="(folder, index) in item.folders" class="draggable">{{ folder.name }}</div>
</div>
我不能再拖动这些.draggable
项目。
据我了解,jQuery Draggable/Droppable 无法使用,.on
因为我怀疑其中一个问题是我的 DOM 元素是在 jQuery 初始化之后生成的。我尝试将我的 jQuery 代码包装进去,this.$nextTick(() => { ... })
但它仍然不起作用。
我也看过Vue.Draggable但我想要拖放而不同时重新排序。
是否可以将 jQuery Draggable/Droppable 与 Vue JS 中的动态数据结合起来?
解决方案
推荐阅读
- python - 如何加速算法以找到时间重叠?
- plsql - 在 PL/SQL 代码中出现“编译单元分析终止”错误
- python - 如何在 Pandas 中对一列列表(考虑列表中的每个项目)执行条件
- javascript - 单击编辑按钮不会更改表格过滤后页面上的 html
- r - 有没有办法以不同的方式处理第一个 lapply 元素?或将其添加到 lapply 结果中?
- swift - 调整元素大小以适应 spritekit 中的屏幕大小
- excel - 除非特定工作表处于活动状态,否则 VBA 代码不起作用
- gemfire - Apache Geode Redis 适配器无法持久化
- python - 过滤数据框会返回“空数据框”
- java - JNDI LDAP 池连接