让我们看看当我们拖拽东西时发生了什么,高级浏览器没有问题。Let's put it under IE7 and test it. 问题出了。图





我们可以清楚的看到,文本被选中,用户体验很差,而且不方便使用。顺便说一下,之前我们已经添加了一个返回false来帮助我们解决很多问题,如果你摆脱这种,Chrome将有同样的问题。所以,返回false;它可以解决铬FF IE9 +浏览器的问题。

事实上,在我们的开发过程中,页面上会有很多元素。在拖动时,任何区域都不可能选择div。例如,百度地图,你可以玩。

那么我们怎样才能像这样拖动和拖动呢你能解决IE7的问题吗

解uff1a

我们可以用一点小技巧解决这个问题。事实上,这项技术仅能解决我们的问题只有当IE6-8支持它,因为返回false是足够的其他浏览器。这里有什么诀窍一看

这是事件!附加代码的简要说明




窗口。指针函数(){
VaR的OBTN = document.getelementbyid(-);
OBtn。onclick =函数(){
警报(1);
};

事件页面上的所有本地焦点都集中在特殊IE上的按钮上。
(OBTN。设置鼠标捕获是是是); / /点击哪里是
}







事实上,网页上的所有事件都集中在页面的任何地方,点击会弹出一个,即设置鼠标捕获是是是()。

将所有事件集中在一个按钮上处理!这只是IE兼容!!



那么,让我看看如何修改前面的代码。



我们首先将所有文档更改为div,记住我们以前讨论过它,因为鼠标拖动很容易拖出div,所以我们将事件添加到文档中。

现在你不必做,添加一个设置鼠标捕获是是是()我们以前的div,看看效果。





IE 7中的文本将被选中,
如果你不添加返回false Chrome FF,会出现这样的问题,asdsadad


asdsadad asdsadad asdsadad

asdsadadasdsadadasdsadad





{ # DIV1
宽度:200px;
身高:200px;
背景:红色;
位置:绝对;
}





拖动/关闭div漏洞的低div版本
在window.onload =函数(){
无功odiv = document.getelementbyid(联赛);
VaR disx = 0;
VaR Disy = 0;
odiv.onmousedown =功能(EV){
无功oevent = EV事件| |;
oevent.clientx - odiv.offsetleft disx =;
oevent.clienty - odiv.offsettop Disy =;
odiv.onmousemove =功能(EV){
无功oevent = EV事件| |;
无功odivleft = oevent.clientx - disx;
无功odivtop = oevent.clienty -迪西;

odiv.style.left = odivleft + 'px;
odiv.style.top = odivtop + 'px;
};

odiv.onmouseup =函数(){
odiv.onmousemove = null;
odiv.onmouseup = null;
};
ODiv.setCapture();
返回false;阻止默认事件,解决Firefox bug
};
};



在这个时候我们其实拖拖DIV出鼠标的问题。事实上,在加入设置鼠标捕获是是是(),对整个网页的所有活动将聚集在这部

事实上,这篇文章不会被选出来,为什么因为网络上的文字,图片上的所有事件都在div上,他们没有得到事件!所以他们自然不会被选中。

当然,还有另外一个问题吗你会发现,当你试图选择单词时,你不能选择它们。



它是什么,事件都集中在部!!!!!

所以,事实上,这个设置鼠标捕获是是是()像一把锁。现在它被锁住了。事件是以上部现在解锁是可用的,和相应的捕获释放()。

捕获释放();这是释放捕获的。事实上,它可以说是当鼠标抬起。


在window.onload =函数(){
无功odiv = document.getelementbyid(联赛);
VaR disx = 0;
VaR Disy = 0;
odiv.onmousedown =功能(EV){
无功oevent = EV事件| |;
oevent.clientx - odiv.offsetleft disx =;
oevent.clienty - odiv.offsettop Disy =;
odiv.onmousemove =功能(EV){
无功oevent = EV事件| |;
无功odivleft = oevent.clientx - disx;
无功odivtop = oevent.clienty -迪西;

odiv.style.left = odivleft + 'px;
odiv.style.top = odivtop + 'px;
};

odiv.onmouseup =函数(){
odiv.onmousemove = null;
odiv.onmouseup = null;
ODiv.releaseCapture();
};
ODiv.setCapture();
返回false;阻止默认事件,解决Firefox bug
};
};


现在你可以解决文本选择的问题了。事实上,这个设置鼠标捕获是是是()是不相容的,这是错误的把它放在其他浏览器。

所以很简单。我们可以把这个与最后一个代码合并,并与A判断兼容。



在window.onload =函数(){
无功odiv = document.getelementbyid(联赛);
VaR disx = 0;
VaR Disy = 0;
odiv.onmousedown =功能(EV){
无功oevent = EV事件| |;
oevent.clientx - odiv.offsetleft disx =;
oevent.clienty - odiv.offsettop Disy =;

如果(odiv。设置鼠标捕获是是是){
odiv.onmousemove = MouseMove;

odiv.onmouseup = MouseUp;

odiv.setcapture(IE); / / 7的话会不会选择实际上是没有文字或图片的事件
{ { { }
document.onmousemove = MouseMove;
document.onmouseup = MouseUp;
}

函数MouseMove(EV){
无功oevent = EV事件| |;
无功odivleft = oevent.clientx - disx;
无功odivtop = oevent.clienty -迪西;
odiv.style.left = odivleft + 'px;
odiv.style.top = odivtop + 'px;
}

功能mouseup(EV){
this.onmousemove = null;
this.onmouseup = null;
如果(odiv。捕获释放){
(odiv。捕获释放); / /释放钩
}
}
返回false;阻止默认事件,解决Firefox bug
};
};



好了,所有的O(一_修理)啊,哈哈。