第一次点击没有报错第二次点击就报错了,懂得大神们帮着看一下图片中的代码错误提示。
$('#div1').on('mousedown',function(ev){
// ev = ev || event;
var disX = event.clientX - this.offsetLeft;
var disY = event.clientY - this.offsetTop;
// 动态创建I节点
var oNewI = document.createElement('i');
oNewI.className = 'drag_bor';
this.parentNode.insertBefore(oNewI, this);
$('#div1').on('mouseup',function(){
console.log(oNewI.parentNode);
oNewI.parentNode.removeChild(oNewI);
});
});
Mouseup事件重复绑定导致。
第一次点击的时候,触发mousedown,并绑定了mouseup。当松手的时候触发了mouseup。
第二次点击的时候,触发mousedown,又绑定了一个mouseup,松手时候触发了先第一次绑定的mouseup,再触发第二次绑定的mouseup。第一次的mouseup再次执行,此时第一次的作用域内oNewI已经被remove过一次了导致没有parentNode了。就console出了null。
正确做法有两种