我有简单的ol-li结构,并且想要添加drag'n'drop到它。另外我想突出悬停项目和dragover项目在不同的颜色。但这是WebKit中一个不寻常的错误。:悬停在元素上拖放
- 捕获最后一个项目。
- 将其拖动到顶部。
- 将它放到第一个项目。
而最后一个元素捕捉悬停伪类!为什么?我怎样才能防止它?
这是一个例子:
var lis = document.querySelectorAll("li"),
ol = document.querySelector("ol"),
dragged = false,
dragover = false;
ol.addEventListener("drop", function(event) {
ol.insertBefore(dragged,dragover);
this.classList.remove("insistent");
}, false);
for (var i=0, n = lis.length; i < n; i++) {
lis[i].addEventListener("dragstart", function(event) {
dragged = this;
ol.classList.add("insistent");
}, false);
lis[i].addEventListener("dragover", function(event) {
if (dragover) {
dragover.classList.remove("dragover");
}
event.preventDefault();
dragover = this;
this.classList.add("dragover");
}, false);
}
什么浏览器,你在具体看到? jsfiddle不会为我打破。 – TimHayes
我有边缘铬(35.0.1916.153)相同的问题。这很烦人,而且必须是一个错误。我不满意使用JS做悬停状态,我认为有更多的手术方案。 – SimplGy