我想在JS和HTML中構建可重新訂購的列表。 (試圖做到這一點,而不使用jQuery的UI)我似乎無法弄清楚爲什麼只有dragstart和dragend事件觸發列表項拖動時。任何人都知道爲什麼其他事件不會解僱?HTML 5拖動事件
<ul>
<li draggable="true" class="drag">1111111</li>
<li draggable="true" class="drag">222222</li>
<li draggable="true" class="drag">333333</li>
<li draggable="true" class="drag">444444</li>
</ul>
<script type="text/javascript">
var drags = document.querySelectorAll('.drag');
[].forEach.call(drags, function(drag) {
drag.addEventListener('dragstart', handleDragStart, false);
drag.addEventListener('dragenter', handleDragEnter, false);
drag.addEventListener('dragover', handleDragOver, false);
drag.addEventListener('dragleave', handleDragLeave, false);
drag.addEventListener('dragend', handleDragEnd, false);
});
function handleDragStart(e){
console.log('handleDragStart');
}
function handleDragEnter(e){
console.log('handleDragEnter');
}
function handleDragOver(e){
console.log('handleDragOver');
}
function handleDragLeave(e){
console.log('handleDragLeave');
}
function handleDragEnd(e){
console.log('handleDragEnd');
}
</script>
在這裏找到一個小提琴:http://jsfiddle.net/68QJu/在Chrome瀏覽器上它工作(狗屎很多'handleDragOver' o.O),所以在不同的瀏覽器中測試它? – yoshi 2012-07-17 19:53:57
我在Snow Leopard的Chrome上進行測試。也許這只是一個問題。我會檢查 – 2012-07-18 12:01:12
是的,我剛剛在OS X上的Chrome 20上進行了測試 - jsut開始和結束事件。 – yoshi 2012-07-18 14:33:05