最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

DIV拖动及DOM2移除事件注意事项

来源:懂视网 责编:小采 时间:2020-11-09 08:32:51
文档

DIV拖动及DOM2移除事件注意事项

DIV拖动及DOM2移除事件注意事项:记录这个没别的意思,之前这段代码貌没有问题,但是调试的时候移除事件貌不能用源代码如下: !--拖动div--!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-tran
推荐度:
导读DIV拖动及DOM2移除事件注意事项:记录这个没别的意思,之前这段代码貌没有问题,但是调试的时候移除事件貌不能用源代码如下: !--拖动div--!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-tran

记录这个没别的意思,之前这段代码貌没有问题,但是调试的时候移除事件貌不能用源代码如下: !--拖动div--!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhtml xmlns=http://www.w3.

记录这个没别的意思,之前这段代码貌似没有问题,但是调试的时候移除事件貌似不能用源代码如下:





无标题文档

-->



 





一直搞不懂为什么事件不能移除?这个代码就一直放下了,结果刚才看《javascript高级程序设计》才知道removeEventListener不能传无参的构造函数,因为addEventListener可以给元素绑定多个事件,所以removeEventListener的时候找不到了!修改好的代码如下:


 /**
 * 绑定事件
 **/ 
 var addEvent = function(obj, eventName, handle) {

 if(window.addEventListener) {
 obj.addEventListener(eventName, handle, false);
 }else {
 obj.attachEvent("on" + eventName, handle);
 }
 }

 var removeEvent = function (obj, eventName, handle){ 
 if (window.removeEventListener) {
 obj.removeEventListener(eventName, handle, false);
 }else if(window.detachEvent){ 
 obj.detachEvent("on" + eventName, handle); 
 }else {
 obj["on"+eventName] = null;
 }

 }; 

 var $ = function(id) {
 return "string" == typeof id ? document.getElementById(id) : id;
 }

 //js兼容性
 var page = {
 event: function (evt) {
 var ev = evt || window.event;
 return ev;
 },
 target: function(evt) {
 return evt.target || evt.srcElement;
 },
 pageX: function (evt) {
 var e = this.event(evt);
 return e.pageX || (e.clientX + document.body.scrollLeft - document.body.clientLeft);
 },
 pageY: function (evt) {
 var e = this.event(evt);
 return e.pageY || (e.clientY + document.body.scrollTop - document.body.clientTop);
 },
 layerX: function (evt) {
 var e = this.event(evt);
 return e.layerX || e.offsetX;
 },
 layerY: function (evt) {
 var e = this.event(evt);
 return e.layerY || e.offsetY;
 }
 } 

 var drag = function(obj) {
 obj.style.position="absolute";
 var mousedownFun, mousemoveFun, mouseupFun, x, y, target;
 mousedownFun = function(event){
 target = page.target(event);
 x = page.layerX(event);
 y = page.layerY(event); 
 
 addEvent(obj,"mousemove", mousemoveFun);

 addEvent(obj,"mouseup", mouseupFun);
 };

 mousemoveFun = function(event){
 var tx = page.pageX(event) - x;
 var ty = page.pageY(event) - y;
 target.style.left = tx + "px";
 target.style.top = ty + "px";
 };

 mouseupFun = function(event) {
 removeEvent(obj, "mousemove",mousemoveFun);
 removeEvent(obj, "mouseup",mouseupFun);
 }
 addEvent(obj,"mousedown", mousedownFun);
 }

 drag($("div2"));

《javascript高级程序设计》不愧是大师写的书,赞

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

DIV拖动及DOM2移除事件注意事项

DIV拖动及DOM2移除事件注意事项:记录这个没别的意思,之前这段代码貌没有问题,但是调试的时候移除事件貌不能用源代码如下: !--拖动div--!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-tran
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top