Javascript 如何模拟拖动事件(单击鼠标移动按钮)?
我希望能够触发事件,并让它显示在事件触发时实际上有一个按钮关闭Javascript 如何模拟拖动事件(单击鼠标移动按钮)?,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,我希望能够触发事件,并让它显示在事件触发时实际上有一个按钮关闭 $('table').on('mousemove', function(e) { var is_dragging = e.buttons.length > 0; // is_dragging should === true; }); $('table').trigger('mousemove'); // is_dragging will be false ::更新:: 查看ondragstart =======
$('table').on('mousemove', function(e) {
var is_dragging = e.buttons.length > 0;
// is_dragging should === true;
});
$('table').trigger('mousemove'); // is_dragging will be false
::更新:: 查看
ondragstart
=======
*。按钮
表示您单击的按钮。在执行mousemove
时,您尚未单击任何按钮
意思是你的e.按钮===0
MouseEvent.按钮上的文档:
您可以通过在函数中抛出调试器并检查e
变量来验证这一点
JSFiddle:
试试这个。创建自定义事件并向其附加按钮
属性
$('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);
$('table')。在('mousemove',函数(e)上{
变量为拖动=e.buttons.length>0;
//is_应===真;
});
var e=$.Event('mousemove');
e、 按钮=[''];
$('table')。触发器(e);
因此,基于我认为您正在努力实现的目标。您希望为onmousemove提供一个事件处理程序,在该处理程序中,您将检查按钮是否已关闭(无论哪个按钮已关闭),但您希望手动触发事件,并使条件为true
如果事件是使用$('table').trigger('mousemove')手动触发的代码>事件将不具有buttons属性,但它将具有.isTrigger属性,该属性将==3
试试这个:
您当前的代码有什么问题?请阅读。通常,mousemove
附加在mousedown
处理程序中以模拟拖动,因此无需检查是否启用了“拖动”。请更详细地解释您实际需要什么。@Anders我更新了代码以显示我正在解决的问题having@Teemu我希望能够触发该事件,并让它显示在触发该事件时,实际上有一个按钮处于关闭状态。@DanielPatz检查我对自定义事件的回答。我很确定OP想要在mousemove处理程序中进行模拟。我知道,只要按钮关闭并且触发了mousemove
事件,我就不在乎单击了哪些按钮。我知道你现在在问什么了。。。你的姿势更新不够清晰:看看ondragstart真棒,就是这样!以下是证明其有效性的JSFIDLE:
$('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');
})