有没有大佬给我讲解一下这个

function allowDrop(ev) {

ev.preventDefault();

}

var srcdiv = null;

var temp = null;

//当拖动时触发

function drag(ev, divdom) {

srcdiv = divdom;

temp = divdom.innerHTML;

}

//当拖动完后触发

function drop(ev, divdom) {

ev.preventDefault();

if (srcdiv !== divdom) {

srcdiv.innerHTML = divdom.innerHTML;

divdom.innerHTML = temp;

}

}

我知道是拖拽换位 但是这具体的每一行是什么意思呢 有人能给我解答一下吗

allowDrop函数中,preventDefault是阻止元素的默认事件,例如button的点击之类的,这里对逻辑的理解没有帮助,忽略;

temp定义了一个中间变量,用来存储drag函数中获取到的div元素的内容,divdom.innerHTML就是获取你传入的那个元素中的html内容;

而drop函数则是当你拖动后,判断位置变化后,将元素内的内容进行了替换

/**
 *
 * @param ev event 事件
 */
function allowDrop(ev) {
  // 防止事件默认行为(比如某些元素节点上可以打开链接),
  ev.preventDefault();
}

// 命名规范性提现出来了。
var srcdiv = null;

// 存储 innerHTML
var temp = null;

/**
 * @description 当拖动时触发
 * @param ev event
 * @param divdom 拖动的div元素
 */

function drag(ev, divdom) {
  // 拖动开始,保存将要拖动的div信息
  srcdiv = divdom;
  temp = divdom.innerHTML;
}

/**
 * @description 当拖动完后触发
 * @param ev event
 * @param divdom 拖动的div元素
 */
function drop(ev, divdom) {
  // 防止事件默认行为(比如某些元素节点上可以打开链接)
  ev.preventDefault();

  // 判断是否发生了拖动
  if (srcdiv !== divdom) {
    // 这里就不懂了,那拖动前和拖动后的 innerHTML 应该是一样的,拖动开始的时候已经指给这个变量了
    // 或者是拖到了其它元素内?
    srcdiv.innerHTML = divdom.innerHTML;
    // 更迷惑 拖动开始 temp = divdom.innerHTML;,拖动后在赋值回,什么代码,反复横跳
    divdom.innerHTML = temp;
  }
}