本問題的解決方法:根據鼠標點擊的標簽名判斷是否可以拖動。謝謝各位!另外還找到一種不太好的方法,就是給input加上一個默認的焦點,即使用$(input).focus(),有用但,不夠靈活。 document.getElementById("log_window").onmousedown = function (e) {
var obj = document.elementFromPoint(event.clientX, event.clientY);
if (obj.tagName.toLowerCase() === 'input' || obj.tagName.toLowerCase() === 'textarea') {
return false;
}
getObject(this, e || event);
};大概代碼如下: <style type="text/css">
#div_add {
HEIGHT: 796px;
WIDTH: 1420px;
background-color:#000;
position:absolute;
top:0;
left:0;
z-index:2;
opacity:0.1;
filter: alpha(opacity=10);
display:none;
}
#log_window {
BORDER-LEFT-WIDTH: 1px;
CURSOR: default;
FONT-SIZE: 9pt;
HEIGHT: 200px;
BORDER-RIGHT-WIDTH: 1px;
WIDTH: 550px;
BORDER-BOTTOM-WIDTH: 1px;
POSITION: absolute;
LEFT: 435px;
Z-INDEX: 10002;
TOP: 123px;
BORDER-TOP-WIDTH: 1px;
display:none;
background-color:#ffffff;
}</style> <div id="div_add"></div>
<div id="log_window" style="width:550px;height:200px;top:123px;left:435px;"></div> <script>
function shield(){
var html='';
html+='<input id="ipt_qty" value="" type= "text" />';
$('#log_window').html(html);
}
//下面是設置div可以拖動,現在不可以輸入,屏蔽之后input可以輸入
var o,X, Y;
function getObject(obj, e) {
o = obj;
document.all ? o.setCapture() : window.captureEvents(Event.MOUSEMOVE);
X = e.clientX - parseInt(o.style.left);
Y = e.clientY - parseInt(o.style.top);
}
這個代碼需要在IE下運行。這只是我的部分代碼,還有很多代碼感覺貼出來沒有用。大概都是這樣的。在網上找到一個方法,
就是設置拖拽以后給input加一個焦點,這樣是可以輸入的,但是鼠標無論放在哪個位置拖動整個div都跟著拖動,
還有按鈕button的點擊樣式和經過樣式都沒有了,怎么寫才可以像平時打開的網頁一樣只可以拖動標題那一欄啊。還有input框用js寫的onblur驗證都沒有觸發。
js設置div可以拖動之后 div里面的input無法輸入
MYYA
2019-04-10 17:15:46
