Javascript 可拖动元素行为

Javascript 可拖动元素行为,javascript,jquery,Javascript,Jquery,我在Mozilla Firefox,这是一个更大项目的一小部分。当我将P文本拖到我的DIV中,而这个DIV没有子对象时,P文本通常被放到DIV中,但是当DIV已经有子对象P时,我尝试将P文本放到DIV中(当然你必须指向DIV中的空白区域,不要再指向P标记子对象),页面会尝试加载一个带有P文本ID的url(我不知道为什么) 功能allowDrop(ev){ ev.preventDefault(); } 功能阻力(ev){ ev.dataTransfer.setData(“文本”,ev.targe

我在Mozilla Firefox,这是一个更大项目的一小部分。当我将P文本拖到我的DIV中,而这个DIV没有子对象时,P文本通常被放到DIV中,但是当DIV已经有子对象P时,我尝试将P文本放到DIV中(当然你必须指向DIV中的空白区域,不要再指向P标记子对象),页面会尝试加载一个带有P文本ID的url(我不知道为什么)

功能allowDrop(ev){
ev.preventDefault();
}
功能阻力(ev){
ev.dataTransfer.setData(“文本”,ev.target.id);
}
功能下降(ev){
if($(ev.target).children()是('p')){
//您指向DIV,它有一个P子对象
}否则{
ev.preventDefault();
var data=ev.dataTransfer.getData(“文本”);
ev.target.appendChild(document.getElementById(data.cloneNode(true));
}
}

#第一组{
宽度:350px;
高度:70像素;
边框:1px实心#AAAAA;
}
跨度{
宽度:350px;
高度:70像素;
背景颜色:黄色;
边框:1px实心#AAAAA;
}
将文本拖动到矩形中以查看发生的情况:

可拖动文本


我刚刚用ev.preventDefault()解决了这个问题。这个方法阻止了浏览器的默认操作,即重新加载页面到带有可拖动元素ID的url,如果可拖动元素是图像,它将转到图像的源。这只发生在Mozilla Firefox中