Javascript e、 在Firefox中拖动div时,originalEvent.pageX和e.originalEvent.pageY始终为零
我正在使用drag API拖动一个div,但Javascript e、 在Firefox中拖动div时,originalEvent.pageX和e.originalEvent.pageY始终为零,javascript,jquery,firefox,Javascript,Jquery,Firefox,我正在使用drag API拖动一个div,但e.originalEvent.pageX和e.originalEvent.pageY始终返回0。 .containerdiv只能使用红方块拖动,这就是为什么它不能从一开始就具有draggable属性 这是我的代码: Html: CSS 这是小提琴 编辑 我找到了一个解决方法来获取坐标: var pageX = 0; var pageY = 0; $(document).on("dragover",function(e) { pageX = e
e.originalEvent.pageX
和e.originalEvent.pageY
始终返回0。
.container
div只能使用红方块拖动,这就是为什么它不能从一开始就具有draggable属性
这是我的代码:
Html:
CSS
这是小提琴
编辑
我找到了一个解决方法来获取坐标:
var pageX = 0;
var pageY = 0;
$(document).on("dragover",function(e) {
pageX = e.originalEvent.pageX;
pageY = e.originalEvent.pageY;
});
fiddle在Firefox中对我来说不起作用(我从未在标签中看到文本),但在Chrome中效果很好(并且标签用非零坐标更新)。@Pointy在Firefox中如果使用红方块拖动元素,标签文本会出现,我不知道为什么,但对我来说不会。@Pointy尝试使用console.log();text()看起来像是一个持久的Firefox bug,而不是$('label')。
$(function(){
$('.container').on('drag', function(e){
$('label').text("pageX:" + e.originalEvent.pageX + " pageY:" + e.originalEvent.pageY);
console.log("pageX:" + e.originalEvent.pageX + " pageY:" + e.originalEvent.pageY);
}).on('dragstart', function(e){
e.originalEvent.dataTransfer.setData('text', 'junk');
});
$('.dragger').on('mouseover', function(){
$(this).parent().attr('draggable', 'true');
}).on('mouseout', function(){
$(this).parent().removeAttr('draggable');
});
});
.container {
position:relative;
background: #ccc;
width:200px;
height:200px;
}
.dragger {
position:absolute;
top:-8px;
right:-8px;
background: red;
width:16px;
height:16px;
}
var pageX = 0;
var pageY = 0;
$(document).on("dragover",function(e) {
pageX = e.originalEvent.pageX;
pageY = e.originalEvent.pageY;
});