问题:
在拖拽元素的时候,如果元素的内部加了文字或者图片,拖拽效果会失灵?
因为浏览器会给文字和图片一个默认行为,当文字和图片被选中的时候,会有一个拖拽的效果,即使我们没有人为他添加。所以当我们点击这个元素拖拽时,有可能选中文字或图片,触发浏览器天生给的那个行为,从而导致我们写的那个拖拽效果失灵。
obj.onmousedown=function(ev){
var ev=ev||window.event;
var _this=this;
var x=ev.clientX-this.offsetLeft;
var y=ev.clientY-this.offsetTop;
if(obj.setCapture){
obj.setCapture()
}else{
ev.preventDefault?ev.preventDefault():ev.returnValue=false;
}
在down下加setCapture这个全局捕获方法
setCapture() 全局捕获的方法 他是ie低版本所特有的。给一个元素添加了这个方法之后,无论我们在页面的那个地方触发了相同的事件,都会触发这个元素。
新增获取元素的方法
Document.querySelector()获取的是单个元素
Document.querySelectorAll() 获取的是元素组
括号里可以写 div .div #div