我正在尝试拖动图像,并且为了停止浏览器的默认图像拖动,我正在使用 event.preventDefault()。但由于某种原因,它会中断其他事件的执行,例如dragenter、dragover、dragend等。为什么会这样以及如何在不中断正常拖动事件的情况下停止浏览器的默认功能。
<img src="/img/image1" id="img1"/>
jQuery
var obj=$('#ironman');
obj.on('dragstart', function (e) {
//e.preventDefault();
console.log("dragstart");
});
obj.on('dragenter', function (e) {
console.log("dragenter");
});
obj.on('dragover', function () {
console.log("dragover");
});
obj.on('dragleave', function () {
console.log("dragleave");
});
obj.on('dragend', function () {
console.log("dragend");
});
JSfiddle http://jsfiddle.net/e6P8b/
这是一项艰巨的任务,因为您要停止元素上的本机拖链事件。不确定为什么要这样做,但实现本机拖动的一种方法是取消它并处理鼠标事件
var obj=$('#ironman');
obj.on('mousedown', function (e) {
console.log("mousedown");
// bind to the mousemove event
obj.on('mousemove', function (e) {
console.log("mousemove");
});
});
obj.on('mouseup', function (e) {
console.log("mouseup");
// unbind the mousemove event
obj.unbind('mousemove');
});
obj.on('dragstart', function (e) {
e.preventDefault(); // cancel the native drag event chain
console.log("dragstart");
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)