2 回答

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
我在每個(gè)窗口上再次調(diào)用該函數(shù)(在開發(fā)人員控制臺中);
因此,當(dāng)我創(chuàng)建一個(gè)新窗口時(shí),我應(yīng)該為每個(gè)窗口再次調(diào)用dragWindow。

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
當(dāng)您向上移動鼠標(biāo)時(shí),函數(shù)closeDragElement()被調(diào)用并且事件監(jiān)聽器document.onmousemove被覆蓋為“null”。
注釋掉函數(shù)中的最后一行closeDragElement()可能會解決這個(gè)問題:
function closeDragElement() {
? ? ? ? // alert(elmnt.id);
? ? ? ? document.onmouseup = null;
? ? ? ? // document.onmousemove = null;
}
編輯:添加一個(gè)變量mousedown來指示鼠標(biāo)是否按下。
function dragWindow(elmnt) {
? ? var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
? ? var mousedown = 0;
? ? elmnt.querySelector(".window-caption").onmousedown = dragMouseDown;
? ? function dragMouseDown(e) {
? ? ? ? e.preventDefault();
? ? ? ? mousedown++;
? ? ? ? pos3 = e.clientX;
? ? ? ? pos4 = e.clientY;
? ? ? ? document.onmouseup = closeDragElement;
? ? ? ? document.onmousemove = elementDrag;
? ? }
? ? function elementDrag(e) {
? ? ? ? e.preventDefault();
? ? ? ? if (mousedown === 0) {return;}
? ? ? ? pos1 = pos3 - e.clientX;
? ? ? ? pos2 = pos4 - e.clientY;
? ? ? ? pos3 = e.clientX;
? ? ? ? pos4 = e.clientY;
? ? ? ? elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
? ? ? ? elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
? ? }
? ? function closeDragElement() {
? ? ? ? // alert(elmnt.id);
? ? ? ? mousedown--;
? ? ? ? document.onmouseup = null;
? ? ? ? //document.onmousemove = null;
? ? }
}
- 2 回答
- 0 關(guān)注
- 129 瀏覽
添加回答
舉報(bào)