2
我在Meteor有一個單頁的應用程序。Mousedown和mousemove在Meteor中表現不一致
我想跟蹤一下書籤列(以包含圖片的<a>
標記的形式)是否已被拖拽到書籤欄。
我正在使用mousedown,mousemove和mouseup的組合來嘗試跟蹤拖動。
Template.myTemplate.events = {
'mousedown': function(){
Session.set('dragging', true)
console.log('drag starts')
},
'mouseup': function(){
if (Session.get('dragging') == true && event.y < 10){
// The result i want
}
Session.set('dragging', false)
console.log('drag stops')
}
}
拖動開始還不錯,但在鼠標離開<a>
標籤後不久,它只是似乎卻步,而mouseup
沒有註冊,因爲它應該。
邏輯的工作原理如果我return false
mouseup
和mousedown
後 - 即。我可以在mousedown之後將鼠標移動到很遠的地方,然後觀察event.y
是否爲< 10,並且沒有任何阻礙,但是代碼沒有用戶能夠拖動<a>
標籤的預期效果。
你有什麼想法嗎?
我試過了。不幸的是,沒有運氣。 Mousedown總是有效的。這是mouseup,這是問題。它似乎是非常隨機的,不管它是否發生火災。 。在一個非流星設置,這樣的:'$( '#拖動')上( '拖拽',功能(事件){ \t \t \t的console.log(window.event.clientY); \t \t})'工作正常。 – jonnyrichards
在我的實驗中,mouseup似乎只在沒有拖動鼠標時才起作用。如果被拖拽,只能被摧毀。 –
值得注意的是,對於任何人來說,這不是一個流星問題,而是一個普通的javascript問題 - 如果鼠標離開mousedown事件的元素,mouseup事件不會被解僱......有一個通用模板級別(甚至是body) mouseup事件見[這個問題](http://stackoverflow.com/questions/6019190/mouseup-event-on-drag) – garrilla