【发布时间】:2014-07-14 13:19:27
【问题描述】:
我只使用 HTML5 拖放。我已经使用 JQuery UI 完成了,但现在需要通过清晰的 HTML5 API 完成。
就像我刚才说的:只有 dragstart 会触发。其余的事件我没有抓住。在 dragstart 函数中似乎一切正常: event.dataTransfer 获取数据,我检查了它。 代码如下:
$('#widget')
.attr('draggable', 'true')
.on('dragstart', function(event) {
event.preventDefault();
event.dataTransfer.effectAllowed = "move";
event.dataTransfer.setData('text/html', $(this).attr('id'))
event.dataTransfer.setDragImage(event.target, 24, 32);
console.log('Im draggable');
console.log(event.dataTransfer.getData('text/html'));
})
.on('dragend', function(event) {
event.preventDefault();
/*$(this).css('top', event.pageX + "px");
event.dataTransfer.getData('text/html');*/
console.log('dragend');
});
$('#widget_dest')
.click(function(event) {
console.log("click widget_dest");
})
.on('dragenter', function(event) {
event.preventDefault();
console.log("dragenter");
})
.on('dragover', function(event) {
event.preventDefault();
console.log("dragover");
})
.on('drop', function(event) {
event.preventDefault();
event.stopPropagation();
console.log("drop");
var data = event.dataTransfer.getData('text/html');
$(this).append($('#' + data));
$('#' + data).css('top', event.pageX + 'px');
});
});
我得到的唯一日志是:dragstart(正确数据)和点击功能。
我特意插入了点击函数来检查 Widget_dest 的属性是否正确。点击事件触发,其余事件不触发。
我会非常感谢任何帮助 维克多
【问题讨论】:
标签: javascript jquery html drag-and-drop