【发布时间】:2020-01-14 04:21:10
【问题描述】:
我想使用可拖动的事件。
所以dragStart 工作得很好,但是drag 和dragEnd 永远不会被触发。
这是我的 HTML 元素
<div [ngClass]="select ? 'show-re' : 'hide-re'" *ngIf="real_estate" id="re">
document.getElementById("re").addEventListener('dragstart', (event) => {
this.start = event.clientX;
console.log(this.start);
})
document.getElementById("re").addEventListener('drag', (event) => {
console.log(event.clientX);
})
document.getElementById("re").addEventListener('dragend', (event) => {
console.log(this.end)
this.end = event.clientX;
if (this.end - this.start > 100)
this.hideRe();
})
【问题讨论】:
-
假设上面的ts代码是用ngAfterViewInit()生命周期钩子写的,那么
real_estate变量最初的值是多少,它会改变吗?因为如果是这样,那么随着值的变化,该元素将频繁地从 DOM 中添加和删除。所以这可能会导致事件监听器被移除。 -
这段代码是在
real_estate之后初始化的,它从未改变过。一切都非常适合dragstart事件 -
real_estate的初始值是多少?你把这段代码放在哪里了?在任何生命周期或从生命周期钩子调用的函数中? -
real_estate是 {id: 12, title: "Zodiak", area: "432"} 的对象。此函数在 GoogleMaps 标记上的click事件之后调用,它对应于我的real_estate标记。
标签: html angular ionic-framework draggable drag