0
我使用此代碼拖動DIV,這是一個小信息框。其中,我有一些簡單的HTML,包括輸入文本或類似的。啓用拖拽(查看代碼)時,所有輸入都被凍結。JavaScript拖動div代碼將凍結輸入文本
var selected = null, // Object of the element to be moved
x_pos = 0, y_pos = 0, // Stores x & y coordinates of the mouse pointer
x_elem = 0, y_elem = 0; // Stores top, left values (edge) of the element
// Will be called when user starts dragging an element
function _drag_init(elem) {
// Store the object of the element which needs to be moved
selected = elem;
x_elem = x_pos - selected.offsetLeft;
y_elem = y_pos - selected.offsetTop;
}
// Will be called when user dragging an element
function _move_elem(e) {
x_pos = document.all ? window.event.clientX : e.pageX;
y_pos = document.all ? window.event.clientY : e.pageY;
if (selected !== null) {
selected.style.left = (x_pos - x_elem) + 'px';
selected.style.top = (y_pos - y_elem) + 'px';
}
}
// Destroy the object when we are done
function _destroy() {
selected = null;
}
document.onmousemove = _move_elem;
document.onmouseup = _destroy;
有一個更大的代碼在這裏,所以我將簡化:
div = document.getElementById("mydiv");
div.onmousedown = function() {
_drag_init(this);
return false;
};
現在,當我顯示DIV,拖動工程進展順利(FF 53),但內凍結任何輸入元素:)
我的信息框(在DIV)的內容簡單
<input id="input_text" type="text" name="product" list="productName"/>
<datalist id="productName">
<option value="Pen">Pen</option>
<option value="Pencil">Pencil</option>
<option value="Paper">Paper</option>
</datalist><br> <button id="myNiceButton" action="input_text">OK</button>
我已經嘗試過一堆搜索解決方案的ns從StackOverflow沒有成功,包括例如。這一個
Prevent drag event to interfere with input elements in Firefox using HTML5 drag/drop
<div draggable="true" id="draggableDiv">
<textarea onfocus="onFocus();" onblur="onBlur();">Inside draggable (FIXED)</textarea>
</div>
但目前看來,這些事件不會被觸發的。也試過draggable =「false」,但同樣的故事,不工作。
會出現什麼問題?
作品。謝謝! – user1797147