0
我正在使用RXJS進行拖放操作。我想在鼠標放下250ms後拖動一個元素,以便在該元素上不劫持點擊事件。使用RXjs進行拖放
到目前爲止,開始拖動工作,但停止拖動永遠不會被調用。有人知道爲什麼
let button = document.querySelector('.button');
let mouseDownStream = Rx.Observable.fromEvent(button, 'mousedown');
let mouseUpStream = Rx.Observable.fromEvent(button, 'mouseup');
let dragStream = mouseDownStream
.flatMap((event) => {
return Rx.Observable
.return(event)
.delay(250)
.takeUntil(mouseUpStream)
});
let dropStream = mouseUpStream
.flatMap((event) => {
return Rx.Observable
.return(event)
.skipUntil(dragStream)
});
dragStream.subscribe(event => console.log('start drag'));
dropStream.subscribe(event => console.log('stop drag'));
謝謝你的回答!它仍然無法按預期工作。這是你第一次拖放。之後,當點擊按鈕時,停止拖動每次都會被記錄下來 – bjorkblom
誠然,我錯過了 - 但通過添加一個'.take(1)' - 這是一個非常明顯的解決方法 - 任何人都可以看到;-) – olsn