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;
}
}