![](/img/trans.png)
[英]How can i simulate drag event using mouse events(mousedown, mousemove events) in JavaScript
[英]How do you simulate a drag event (mousemove with a button clicked)?
我希望能够触发事件,并让它显示在触发事件时实际上有一个按下的按钮。
$('table').on('mousemove', function(e) {
var is_dragging = e.buttons.length > 0;
// is_dragging should === true;
});
$('table').trigger('mousemove'); // is_dragging will be false
试试看 创建一个自定义事件并将buttons
属性附加到它。
$('table').on('mousemove', function(e) {
var is_dragging = e.buttons.length > 0;
// is_dragging should === true;
});
var e = $.Event( 'mousemove' );
e.buttons = ['<set any key you need>'];
$('table').trigger(e);
因此,基于我认为您正在尝试实现的目标。 您想为onmousemove提供一个事件处理程序,在该事件处理程序中检查按钮是否按下(无论哪个按钮按下),但是您想要手动触发事件并使条件is_dragging result为true。
如果使用$('table').trigger('mousemove');
手动触发事件$('table').trigger('mousemove');
该事件将没有按钮属性,但是将具有.isTrigger属性,该属性== 3。
试试这个: https : //jsfiddle.net/SeanWessell/L2z0su3j/
$('table').on('mousemove', function(e) {
var is_dragging = e.buttons > 0 || e.buttons == undefined && e.isTrigger == 3;
// is_dragging should === true;
$('p').html(is_dragging.toString())
});
$('#trigger').click(function(){
$('table').trigger('mousemove');
})
::更新::
看看ondragstart
http://www.w3schools.com/jsref/event_ondragstart.asp
=======
*.buttons
是您单击的按钮。 mousemove
时,您尚未单击任何按钮。
表示您的e.buttons === 0
关于MouseEvent.button的文档: http : //www.w3schools.com/jsref/event_button.asp
您可以通过在函数中放入debugger
并检查e
变量来验证这一点
JSFiddle: http : //jsfiddle.net/qf3u8m61/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.