簡體   English   中英

拖動期間釋放鼠標時,將忽略Java Script mouseUp事件

[英]Java Script mouseUp event ignored when mouse is released during drag

所以我有一個<div>元素,該元素在我的腳本中創建並附加到另一個<div> 我有:

 coverElm.onmousedown = mouseDownEventHandeler;
 document.onmouseup = mouseUpEventHandeler;
 document.onmousemove = mouseMoveEventHandeler;

我已經定義了功能並且可以很好地工作,並使用布爾mouseDown跟蹤鼠標是否按下。

問題 -當按下鼠標並釋放document.onmouseup從未處理。 我認為這是因為它會拖累<div>女巫中的任何內容,只是文本中的幾句話。 我也有沒有文字的問題。

因此,我要尋找的是一種防止這種奇怪的拖動行為的方法,或者一種供onmousedrag查看是否按下鼠標的方法 - 不使用上移和下移方法

[編輯]這是我的功能:

 function mouseUpEventHandeler(e) {
        mouseDown = false;
}
function mouseDownEventHandeler(e) {
        mouseDown = true;
}
function mouseMoveEventHandeler(e) {
        if (mouseDown) {
               coverElm.innerHTML ="<p>Mouse down and dragging</p>";
        }
}

90%的時間是因為被拖動的元素位於具有mouseup事件偵聽器的元素的前面,因此下方的父元素永遠不會獲取該事件。

通常,可以使用addEventListener而不是事件的內聯形式來解決此問題。 解決此問題的另一種方法是為拖動的元素提供釋放鼠標時的eventListener 此外,每當元素開始拖動時(通過zIndex屬性),您都可以將div置於所有其他元素的前面。

編輯:我鞭打了一些概念驗證代碼: http : //jsfiddle.net/2BkEM/5/

$j(divID).bind('dragstart', function (event) { event.preventDefault() });

謝謝大家

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM